5

次のコード スニペットを参照してください。

int main()
{

    int arr[] = { 0,3 , 4,28,1198};
    for(int i=0;i<5;i++)
    printf("\n arr[i] %u \n" , arr+i);
    printf("\n *******************\n");
    printf("%u ", &arr+1);

    return 1;

}

実行すると、次のように出力されます。

arr[i] 3219650892 

 arr[i] 3219650896 

 arr[i] 3219650900 

 arr[i] 3219650904 

 arr[i] 3219650908 

 *******************
3219650912 

最後の要素のアドレスにさらに1つの整数が追加されたように見えますが、これは奇妙に思えます。2番目の要素のアドレスを教えてくれるはずだったと思います。

この動作を理解するのを手伝ってもらえますか?

4

3 に答える 3

0

&arr は、5 つの整数の配列へのポインターを提供します。

したがって、&arr+1 は次の 5 つの整数の配列を指します。

于 2013-04-21T16:15:08.010 に答える