변수랑 친해지자
타입재정의(추후에 다시 학습할 예정)
- typedef char byte; => char형을 byte로 재정의
포인터타입(간단하게)
- 다른 타입의 객체를 참조할 수 있는 타입
- 데이터를 메모리 주소값으로 해석
- Type* Identifier;
int num = 10;
int* p = #
왜 포인터를 사용해야하는가
- 메모리에 접근하는 방법은 2가지가 있다.
- 직접 참조(Direct Reference / Direct Access) : 메모리 주소에 직접 접근하는 것
- 간접 참조(Indirect Reference / Indirect Access) : 메모리 주소를 포인터를 통해 접근 하는 것
- Scope : 프로그램이 식별자를 찾을 수 있는 영역
- Block Scope : => Local Variable(지역변수)
- File Scope : => Global Variable(전역변수)
- 포인터의 크기 : x86 => 4byte, x64 => 8byte
- +,- : 메모리 주소를 가리키고 있는 타입의 크기만큼 옮긴다.
int arr[2] = { 10, 20 };
int* p= arr;
p = p + 1; //&arr[1]
p = p + 2; //&arr[0]
char* phc
pch + 1; //1바이트만큼 뒤로
pch --1; //1바이트만큼 앞으로
// 증감연산자도 사용 가능. (단, * / 는 불가능)
p++;
p--;
주의(연산자 우선 순위)
- 역참조 연산자와 증감 연산자를 결합할 때 연산 순서를 유의해야 한다.
void 타입
- 모든 타입을 담을 수 있는 타입.
- 단, 연산이 아무것도 안된다. (어떤 타입을 다루고 있는지 확인할 수 없으니)
문자열 함수
- 무조건! 함수처리 할 문자열은 NULL로 끝나야 하며!! 크기가 충분해야한다!!
- strcpy() : 문자열 복사
- strcpy(문자열1, 문자열2) -> 문자열2를 문자열1에 복사
- strcat() : 문자열 붙혀넣기
- strcat(문자열1, 문자열2) -> 문자열2를 문자열1 뒤에 붙혀넣기
- strlen() : 문자열 길이 반환
- Size_t length = strlen(문자열) -> length라는 변수에 문자열의 길이를 반환
- strcmp() : 문자열 비교
- strcmp(문자열1, 문자열2)
- 양수 : 문자열 1이 더 크다(빠르다)
- 0 : 문자열 1, 2가 서로 같다
- 음수 : 문자열 2가 더 크다(빠르다)
- strchr() : 문자찾기(중복된 경우 처음만 판단)
- strrchr() : 뒤에서부터 문자찾기 방식은 strchr와 동일
함수
- 반복되는 실행부분을 하나로 묶어서 함수로 정의하고 사용한다.
- 매개변수 : 함수에서 사용되는 변수. 함수 외부에서 입력값을 받기 위해 사용.
- 함수를 호출한다는 것은 코드를 재사용 하기 위함이다.
- 함수를 호출할때 호출한 사람을 호출자(Caller), 호출된 함수를 피호출자(Callee)라고 한다.
- 호출자에게 함수에서 계산한 결과를 '반환' 해 줄 수 있다.
- 반환은 return문을 사용하며 반환값은 반환 타입과 일치 해야 함.
- 반환하는 것이 없다면 void 타입을 사용
- 인자 : 매개변수의 초기값
int sum(int x, int y) //매개변수
{
return x + y; //반환
}
int main()
{
int a = sum(1,2); //1, 2는 인자.
}
교수님 요구사항
- 백준 문자열(함수 제외)까지 풀기
- 배웠던거 천천히 복습하기
- 자유자재로 실습하기
- 문자열 함수 (token제외) 실습 만들어보기