10. C 포인터
2022. 7. 21. 21:36ㆍC
저번 강의에서 배웠듯이, 우리는 & 연산자로 객체의 메모리 주소를 불러올 수 있습니다.
& 연산자는 참조 연산자라고 부릅니다.
다음과 같이 말이죠.
int a = 1;
printf("%d", a);
printf("%p", &a);
그런데, 여기서 &a 도 하나의 포인터입니다.
포인터는 다른 객체의 메모리 주소를 저장하는 변수입니다.
포인터 변수는 자료형 뒤에 * 을 붙여서 선언합니다.
int a = 1;
int* pointer = &a;
printf("%p\n",&a);
printf("%p\n", pointer);
과 같은 방법으로 선언하면, 첫번째 printf와 두번째 printf 함수가 출력하는 대상은 같습니다.
바로 변수 a의 주소죠.
* 연산자를 사용하면 포인터 주소의 변수값을 가져올 수 있습니다. *를 역참조 연산자라고 부릅니다.
printf("%d\n",*pointer);
로 쓰면 pointer 에 저장돼있는 주소를 따라가 그 주소에 있는 변수의 값을 저장합니다.
간단한 설명이었지만 포인터는 매우 어렵습니다. 지속적으로 백준 등의 사이트에서 문제를 풀어보는 것을 권고합니다.