우리가 C로 작성한 변수들은 실제로 컴퓨터 메모리에 어떻게 저장될까요? 메모리 주소를 나타내는 방법과 그 주소를 알아내는 방법, 그 주소에 찾아가는 방법을 배워봅시다.
// 1. 기본
#include <stdio.h>
int main(void)
{
int n = 50;
printf("%i\n", n);
}
// 2. & 연산자 ("~의 주소")
#include <stdio.h>
int main(void)
{
int n = 50;
printf("%p\n", &n);
}
// 3. * 연산자 ("그 주소로 가줘")
#include <stdio.h>
int main(void)
{
int n = 50;
printf("%i\n", *&n);
}
앞서 배운 메모리 주소를 직접 관리하기는 쉽지 않을 수 있습니다. C에는 포인터 라는 개념을 통해서 변수의 주소를 쉽게 저장하고 접근할 수 있게 해줍니다. 포인터가 무엇인지, 어떻게 사용하는지에 대해 배워보겠습니다.
#include <stdio.h>
int main(void)
{
int n = 50;
int *p = &n;
printf("%p\n", p); // 0x7fff3977662c >>> 메모리 주소가 출력됨
}