C언어/Study
[C언어 공부] 주소와 포인터의 크기
이렁부너
2024. 8. 21. 00:30
주소와 포인터의 크기
- 포인터도 저장 공간이므로 크기가 있음. 포인터의 크기는 저장할 주소의 크기에 따라 결정되는데 크기가 클 수록 더 넓은 범위의 메모리를 사용할 수 있음.
- 모든 주소와 포인터는 가리키는 자료형과 상관없이 그 크기가 같음. (안에있는 변수는 자료형에 따라 크기가 다를 수 있음.)
/*
* 주소와 포인터의 크기
*/
#include <stdio.h>
int main(void)
{
char ch;
int in;
double db;
char *pc = &ch;
int *pi = ∈
double *pd = &db;
printf("char형 변수의 주소 크기 : %d\n", sizeof(&ch));
printf("int형 변수의 주소 크기 : %d\n", sizeof(&in));
printf("double형 변수의 주소 크기 : %d\n", sizeof(&db));
printf("char * 포인터의 크기 : %d\n", sizeof(pc));
printf("int * 포인터의 크기 : %d\n", sizeof(pi));
printf("double * 포인터의 크기 : %d\n", sizeof(pd));
printf("char * 포인터가 가리키는 변수의 크기 : %d\n", sizeof(*pc));
printf("int * 포인터가 가리키는 변수의 크기 : %d\n", sizeof(*pi));
printf("double * 포인터가 가리키는 변수의 크기 : %d\n", sizeof(*pd));
return 0;
}
- 17~19행과 21~23행은 자료형과 상관없이 모두 크기가 같음. but 25~27행과 같이 포인터에 간접 참조 연산자를 사용해 가리키는 변수의 크기를 구하면 각각 다른 결과가 나옴.