Ex23-포인터 변수와 배열의 크기 차이

CODEDRAGON Development/C, C++

반응형

   

포인터 변수와 배열의 크기 차이

모든 포인터 변수는 크기가 4byte로 고정되어있고 배열은 배열 길이에 따라 크기가 달라집니다

   

   

소스코드

#include <stdio.h>

int main(void) {
                int array[3]={10, 20, 30};
                int* p=NULL;

                p=array;                // p=&array[0];
포인터 변수에 배열의 시작 주소를 저장

                printf("%d %d %d \n", array[0], array[1], array[2]);
                printf("%d %d %d \n", *(array+0), *(array+1), *(array+2));
                printf("%d %d %d \n", p[0], p[1], p[2]);
                printf("%d %d %d \n", *(p+0), *(p+1), *(p+2));

                //
배열은 배열 길이에 따라 크기가 달라집니다(가변적)
                printf("
배열의 크기 : %d\n", sizeof(array));       // 12byte
                //
포인터 변수는 크기가 4byte 고정
                printf("
포인터의 크기 : %d\n", sizeof(p));                // 4byte

                return 0;
}


 

   

출력결과