作者takeabreak2 (小林)
看板Programming
標題[問題] C語言關於陣列位置的問題
時間Wed May 14 10:37:40 2014
大家好
小弟這兩天才注意到一個問題
困擾了很久一直想不通
int a[5]={0,1,2,3,4};
printf("%X", a); //印出a的內容:3B241EA0
printf("\n");
printf("%X", &a); //印出a的位置:3B241EA0
printf("\n");
printf("%d", *a); //印出a所指的位置的內容:0
註解是我對程式碼的理解
如果a的位置和內容相同
那a不是指向自己了? *a怎麼會是0?
大學用C語言寫了四年
第一次注意到這件事......
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.89.52
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Programming/M.1400035063.A.B76.html
1F:→ saxontai:a == &a == &a[0]220.132.123.195 05/14 10:40
2F:→ saxontai:*a == a[0]220.132.123.195 05/14 10:40
3F:→ takeabreak2:謝謝樓上回覆,其實我的問題是記憶體 1.167.89.52 05/14 10:44
4F:→ takeabreak2:位置3B241EA0裡面到底放什麼東西!? 1.167.89.52 05/14 10:44
5F:推 purpose:其實就是一個常見問題,網路上很多討論了 124.8.130.43 05/14 10:52
6F:→ purpose:google 搜尋 array name pointer 124.8.130.43 05/14 10:53
7F:→ takeabreak2:感謝樓上指點關鍵字 :) I get it!! 1.167.89.52 05/14 10:55
8F:→ Killercat:這也是為什麼++a(a++)可以用的原因 59.124.251.135 05/15 14:50
9F:→ Killercat:要是無法表示成這寫法 就沒辦法這樣子 59.124.251.135 05/15 14:50
10F:→ Killercat:來移動pointer了 59.124.251.135 05/15 14:50