【发布时间】:2012-09-13 19:32:56
【问题描述】:
我用 C 写了以下代码:
#include<stdio.h>
int main()
{
int a[10][10]={1};
//------------------------
printf("%d\n",&a);
printf("%d\n",a);
printf("%d\n",*a);
//-------------------------
printf("%d",**a);
return 0;
}
通过上述 3 个 printf 语句,我得到了相同的值。在我的机器上它是 2686384。但是最后一条语句我得到了 1。
是不是出了点问题?这些陈述的意思是:
-
a的地址是2686384 -
a中存储的值为2686384 -
a指向的变量地址(即 2686384)存储的值为 2686384。
这意味着a 必须类似于指向自身的变量...
那为什么*(*a)的输出是1呢?为什么不评价为*(*a)=*(2686384)=2686384?
【问题讨论】:
-
试试这个链接,了解二维数组的基本知识.. [引用二维数组] (stackoverflow.com/questions/2923214/dreferencing-2-d-array?rq=1)