[問題] 指標常數的問題

看板C_and_CPP作者 (Cobra)時間15年前 (2010/09/05 18:03), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/2 (看更多)
最近在看C語言教學手冊 他說如果宣告一個 int a[3] = {0, 1, 2}; 假設 a[0] 位址是 1400 這個位址存放的值是 0 a[1] 位址是 1404 這個位址存放的值是 1 a[2] 位址是 1408 這個位址存放的值是 2 但他又說 a 是一個指標常數 位址是1400 裡面存放的值也是 1400 我知道為什麼他值是1400 但我不了解的是 同樣的1400位址 怎麼可以又存 0這個int數值 又存 位址1400 呢? 也就是為什麼他同時可以當指標 又當 int呢? 內部運作是如何解釋這個狀況呢 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.253.47

09/05 18:23, , 1F
去學一下Visual C++或Codeblocks這些工具如何用來debug
09/05 18:23, 1F

09/05 18:23, , 2F
自己在debug時(中斷點),觀察記憶體、反組譯碼
09/05 18:23, 2F

09/05 18:29, , 3F
「a是陣列,不是指標」,雖然兩者運算很像, 但還是有
09/05 18:29, 3F

09/05 18:30, , 4F
地方不一樣, 像是 sizeof 運算子
09/05 18:30, 4F

09/05 18:39, , 5F
*a、a[index] <- 這些才是 int,a算 int* const吧
09/05 18:39, 5F

09/05 18:44, , 6F
a 的型態是 int[3] 不是指標
09/05 18:44, 6F

09/05 18:50, , 7F
a的型態,萬年爭論
09/05 18:50, 7F

09/05 18:50, , 8F
歡迎看看"pointer to array請教"討論串XD
09/05 18:50, 8F

09/05 20:56, , 9F
OK 謝謝樓上 我去看一下^^
09/05 20:56, 9F
文章代碼(AID): #1CWsi2i9 (C_and_CPP)
文章代碼(AID): #1CWsi2i9 (C_and_CPP)