看板 Programming 關於我們 聯絡資訊
大家好 小弟這兩天才注意到一個問題 困擾了很久一直想不通 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://www.ptt.cc/bbs/Programming/M.1400035063.A.B76.html
saxontai:a == &a == &a[0]220.132.123.195 05/14 10:40
saxontai:*a == a[0]220.132.123.195 05/14 10:40
takeabreak2:謝謝樓上回覆,其實我的問題是記憶體 1.167.89.52 05/14 10:44
takeabreak2:位置3B241EA0裡面到底放什麼東西!? 1.167.89.52 05/14 10:44
purpose:其實就是一個常見問題,網路上很多討論了 124.8.130.43 05/14 10:52
purpose:google 搜尋 array name pointer 124.8.130.43 05/14 10:53
takeabreak2:感謝樓上指點關鍵字 :) I get it!! 1.167.89.52 05/14 10:55
Killercat:這也是為什麼++a(a++)可以用的原因 59.124.251.135 05/15 14:50
Killercat:要是無法表示成這寫法 就沒辦法這樣子 59.124.251.135 05/15 14:50
Killercat:來移動pointer了 59.124.251.135 05/15 14:50