[英]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
但是我認為p
和arr
指向相同的內存地址。 為什么顯示不同的地址?
讓我們看一下代碼
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.