各位先進大家好:
int a[5] = {1,2,3,4,5};
int *ptr = (int *)(&a+1);
value of *ptr-1 = ??
這邊我把它印出來發現是 32766
但是不太懂為什麼
&a 跟 a 都是陣列的起始記憶體位置
所以我猜*ptr-1 會等於 2-1=1才對啊?!
有請高手分析
謝謝!
※ 編輯: kumusou (39.13.28.164), 05/22/2014 18:42:35
※ 編輯: kumusou (39.13.28.164), 05/22/2014 18:43:47
作者: remizu (remizu) 2014-05-22 19:07:00
&a的type是int[5] &a+1會加一個int[5]的size所以這裡 ptr是指向a+5的那個位址更正一下 &a的type應該是int(*)[5]