问题(Question):
假设有一个阵列,叫做int a[5];
则a==&a==&a[0],a==&a[0]可以理解,但为何a==&a?
a的值是阵列开头的位置(假设是1000),且a本身也占有内存位置(假设是2000),
那&a不是应该是那个内存空间位置(2000)吗?
所以应该是两个不同的位置,但为何程式跑出来a==&a:
int main (int argc,char *argv[]){
int a[5];
printf("%p %p %p",a,&a[0],&a);
//结果为000000000062FE00 000000000062FE00 000000000062FE00
return 0;
}
二维阵列也是一样的状况,若有一阵列叫做num[3][4],则num==&num
num[0]==&num[0] num[1]==&num[1]......
我看书上都没有解释的很清楚,希望有人可以解惑,拜托了。