코드의 조각을 봐 :
#INCLUDE <STDIO.H> #INCLUDE <stdlib.h> INT 본체 ( 무효 ) { INT A [ 5 ] = { 1 , 2 , 3 , 4 , 5 }; 의 printf ( " %의 D, D % \ n " , A, & A ); 의 printf ( " %의 D, D % \ n " , A + 1 , A + 1 ); 의 printf ( " % D \ n " , sizeof 연산자 a); 의 printf ( " 가 % d \ n " , sizeof 연산자 & A ); 의 printf ( " % D \ n " * (a + 1 )); 의 printf ( " 가 % d \ n " , * (( INT *) (A + 1 ) - 1 )); 시스템 ( " 정지 " ); 반환 0 ; }
결과는 다음과 같다 :
이 볼 수있는 및 상기 동일한 블록 어드레스를 가리키고 있지만 한 후 서로 다른 효과하는 + 1 (4 증가) 요소의 메모리 크기, 및 +1 전체 어레이의 메모리 용량을 증가 (증가 20). 그리고 모두 및 포인트 및 A [0]와 동일하다!
그러나 왜 이러한 상황이있다?