問題(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]......
我看書上都沒有解釋的很清楚,希望有人可以解惑,拜託了。