본문 바로가기
C언어

C언어 포인터를 공부하자! - *과 &기호 공부하기!

by 여름코딩 2023. 4. 13.
반응형

안녕하세요 판타지코딩입니다!

 

오늘은 C언어의 포인터에 대해서 공부해 보겠습니다!

 

포인터 공부하기!

 

코드를 리뷰하다 보면 '*'기호와 '&'기호를 볼 수 있습니다. 각각 포인터와 주소값을 의미하는 기호입니다. 포인터에 대해서 알면 코드를 리뷰할 때 더 수월하게 볼 수 있으므로 오늘은 하나씩 천천히 공부해 보도록 하겠습니다!

 

포인터란?

포인터는 주소값을 가리키는 것입니다. 일반 변수는 변수를 생성하고 데이터를 저장하는 과정이 있습니다. 그런데 포인터는 포인터 변수를 생성하고 데이터를 저장한 변수의 주소값을 포인터 변수에 저장해서 주소값을 가리키도록 합니다. 그럼 일반 변수를 생성하고 데이터를 저장하는 과정부터 보겠습니다.

 

int num;
num = 100;

 

int형 변수 num을 생성하고 100을 저장했습니다. num의 메모리 공간에 100이 저장된 것입니다. 그럼 이번에는 포인터 변수를 통해 데이터를 저장하는 방법을 보겠습니다.

 

int num1;
num1 = 100;

int *num2;
num2 = &num1;

 

int형 변수 num1을 생성하고 100을 저장했습니다. 그리고 포인터 변수 num2를 생성한 후 num1의 주소값을 작성했습니다. 이렇게 작성하면 *num2는 num1에 저장된 100을 가리킵니다!

 

printf("%d", num1);
printf("%d", &num1);
printf("%d", num2);
printf("%d", *num2);

 

num1은 100을 저장하고 있으므로 그대로 100이 출력됩니다. 다음으로 &num1은 100이 저장된 num1의 주소값을 의미합니다. 그리고 이 주소값을 num2에 저장했으므로 num2 또한 num1의 주소값이 출력됩니다. 마지막으로 *num2는 num1의 주소값을 가리키므로 num1에 저장된 100을 출력합니다.

 

그럼 오늘은 포인터 변수를 생성하고 데이터를 저장하는 방법을 알아보았습니다. 포인터와 주소값에 대해 이해하고 코드를 작성해 보시면 좋겠습니다.

 

감사합니다!

반응형