메이플의 개발 스토리
C언어에서 포인터란? 본문
1. 포인터란 무엇인가?
포인터 = 번지 = 메모리의 위치
2. 포인터 변수 = 포인터를 저장할 수 있는 변수
즉, 포인터 변수에는 문자열, 숫자가 들어가는 것이 아니라 번지가 들어간다.
3. 포인터 변수 정의
int *intPointer;
// intPointer는 정수가 저장된 곳의 위치를 가리킬 수 있다.
// intPointer에 대하여 4바이트의 메모리를 할당해준다.
포인터에는 번지 값만 저장할 수 있으므로, 아래와 같은 식은 성립이 안 된다.
intPointer = 5;
intPointer - 'a';
그렇다면 아래 식은 어떤 값을 출력하게 될까?
main() {
int *intPointer;
printf("%p\n", intPointer); // (1)
printf("%p\n", &intPointer); // (2)
}
(1)번은 intPointer에 저장된 숫자를 출력한다. (intPointer)
하지만 지금은 초기화를 해주지 않은 상태이므로, 쓰레기값이 들어가 있다.
(2)번은 intPointer에 할당된 메모리 주소을 출력한다. (&intPointer)
0x349a045 같은 값이 출력될 것이다.
int *intPointer의 정의
: intPointer에 번지를 저장할 수 있다는 뜻 => intPointer는 정수가 저장된 곳을 가리킬 수 있다!
Comments