[問題] C語言關於陣列位置的問題

看板Programming作者 (小林)時間11年前 (2014/05/14 10:37), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/2 (看更多)
大家好 小弟這兩天才注意到一個問題 困擾了很久一直想不通 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

05/14 10:40, , 1F
a == &a == &a[0]
05/14 10:40, 1F

05/14 10:40, , 2F
*a == a[0]
05/14 10:40, 2F

05/14 10:44, , 3F
謝謝樓上回覆,其實我的問題是記憶體
05/14 10:44, 3F

05/14 10:44, , 4F
位置3B241EA0裡面到底放什麼東西!?
05/14 10:44, 4F

05/14 10:52, , 5F
其實就是一個常見問題,網路上很多討論了
05/14 10:52, 5F

05/14 10:53, , 6F
google 搜尋 array name pointer
05/14 10:53, 6F

05/14 10:55, , 7F
感謝樓上指點關鍵字 :) I get it!!
05/14 10:55, 7F

05/15 14:50, , 8F
這也是為什麼++a(a++)可以用的原因
05/15 14:50, 8F

05/15 14:50, , 9F
要是無法表示成這寫法 就沒辦法這樣子
05/15 14:50, 9F

05/15 14:50, , 10F
來移動pointer了
05/15 14:50, 10F
文章代碼(AID): #1JSjRtjs (Programming)
文章代碼(AID): #1JSjRtjs (Programming)