なぜ彼は名前の配列に対処するために選んだのは、アドレスは、アレイ全体が得られますか?

コードの一部を見てください:

する#include <stdio.hに> 
する#include <STDLIB.H> INTメイン(ボイド
{ INT [ 5 ] = { 12345 }。
    printf(" %d個、%D \ n "、& )。
    printf(" %d個、%D \ n "、+ 1、および+ 1 )。
    printf(" %D \ n "はsizeof A)。
    printf(" %d個\ N "はsizeof



    
    
    
); 
    printf(" %D \ n "、*(+ 1 ))。
    printf(" %dの\ n "、*((INT *)(&+ 1) - 1 ))。


    システム(一時停止)。
    リターン 0 ; 
}

結果は以下の通りでした:

 

 それは見ることができるとと同じブロックアドレスをポイントし、しかし+1後にそれらの異なる効果、+ 1(4の増加)要素のメモリサイズであり、&+ 1は、アレイ全体のメモリサイズを増大させること(増大20)。そして、両方のAと&ポイント&[0]は同じです!

しかし、なぜこのような状況はありますか?

 

おすすめ

転載: www.cnblogs.com/roscangjie/p/12235270.html