그는 왜 이름의 배열을 해결하기 위해 선택 했, 주소는 전체 배열을 얻을 수있다?

코드의 조각을 봐 :

#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]와 동일하다!

그러나 왜 이러한 상황이있다?

 

추천

출처www.cnblogs.com/roscangjie/p/12235270.html