簡體   English   中英

指向2d數組的指針

[英]pointer to 2d array

我有以下代碼:

int arr[2][2][2]={10,3,4,5,6,7,8,9};
int *p;
printf("%u",arr);
p=(int *)arr;
printf("%u",p);

哪個輸出

64166
64164

但是我認為parr指向相同的內存地址。 為什么顯示不同的地址?

讓我們看一下代碼

 int *p;
 printf("%u",p);

p是單元化的int指針。 它會打印出內存中的所有內容。

 p=(int *)arr;
 printf("%u",p);

p現在指向內存中數組的地址,並打印該地址。

但是相同的代碼

 #include <stdio.h>

    int main()
    {

         int arr[2][2][2]={10,3,4,5,6,7,8,9};
         int *p;
         printf("\n%u",arr);
         p=(int *)arr;
         printf("\n%u\n",p);
         return 0;
    }

僅給出相同的結果。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM