10. C 포인터

2022. 7. 21. 21:36C

저번 강의에서 배웠듯이, 우리는 & 연산자로 객체의 메모리 주소를 불러올 수 있습니다.

& 연산자는 참조 연산자라고 부릅니다.

다음과 같이 말이죠.

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 에 저장돼있는 주소를 따라가 그 주소에 있는 변수의 값을 저장합니다.

 

간단한 설명이었지만 포인터는 매우 어렵습니다. 지속적으로 백준 등의 사이트에서 문제를 풀어보는 것을 권고합니다.

'C' 카테고리의 다른 글

9. C 메모리  (0) 2022.07.06
8. C 배열  (0) 2022.05.17
7. C 반복문  (0) 2022.02.21
6. C 조건문 (if, else, else if, switch)  (0) 2022.02.19
5. C 연산자  (0) 2022.02.17