2012-05-02 5 views

답변

4

위한 I "인쇄"sizeof의 (개) 제 1 가변 1000 개 문자의 배열 인 char[1000] 입력 갖는다.

두 번째 변수는 포인터 인 유형 char *입니다. 귀하의 시스템에서 그것은 포인터가 8 (아마 당신이 64 비트 포인터를 가지고 있기 때문에)의 크기를 가지고 나타납니다.

+0

하지만 첫 번째 포인터도 "dog"가 아니며 ("char"포인터 "가 아닌), 힙의 두 번째 포인터와 같은 스택에 있습니까? – jdl

+0

@jdl : 아니요. 첫 번째 포인터 –

+0

배열은 포인터로 저하되므로 포인터와 거의 같은 방식으로 사용할 수 있지만 배열의 sizeof()는 배열 전체의 크기를 나타냅니다. –

1

char *dog은 단지 하나의 포인터 일 뿐이므로 char dog[1000]은 문자 배열입니다.

주목할 점은 동적 배열 (char *dog)이 알려지지 않은 반면 sizeofdog[1000]이 컴파일 타임에 알려졌다는 것입니다.