[問題] 一個reference的問題
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf("%d",*(ptr-1));
輸出是5
int a[5]={1,2,3,4,5};
int *ptr=(int *)(a+1);
printf("%d",*(ptr-1));
輸出是1
我能理解第二個例子,可是第一個例子是什麼意思?
我嘗試把a和&a都印了出來,發現兩個位址是一樣的
a+1和&a+1分別和a及&a的位址差距,一個是4一個是20(4*5)
可以理解是跟矩陣大小有關
但還是不理解&a+1的意思...
有人可以幫我解說嗎??
感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.218.76
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1409158209.A.6CA.html
推
08/28 01:24, , 1F
08/28 01:24, 1F
→
08/28 01:25, , 2F
08/28 01:25, 2F
→
08/28 01:26, , 3F
08/28 01:26, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章