看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《zzss2003 (brotherD)》之銘言: : hi,魯蛇小弟我在看C How to program 6/e時,看到了這段話: : "The value of a string is the address of its first character" : 字串的值是第一個字元的位址 : 所以小弟我做了一個實驗,圖:https://imgur.com/a/wpuXV : 用GCC編譯的結果,這個string的值為h,並不是h的位址 : 請問各位大大,小弟的實驗在觀念上哪裡有錯誤嗎? 謝謝各位的建議,我把程式碼改成如下(不曉得是不是這樣貼?) <script src="https://ideone.com/e.js/5bzuCk" type="text/javascript" ></script> 並且畫了這張圖: https://imgur.com/a/2YrCK 那書上說的: The value of a string is the address of its first character,在我畫 的圖中所指的就是a,所以string"hello"的值就是0x2b825a9177a4 (有錯請指正,謝謝~) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.248.26.157 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1516764761.A.BB3.html
moebear: /a/ 01/24 11:42
stupid0319: 可以建議Telnet Browser加入Html功能 01/24 12:02
dces4212: /a/去掉 大家才可直接看圖 01/24 12:49
dces4212: 應該說去掉/a 01/24 12:49
已更正 ※ 編輯: zzss2003 (60.248.26.157), 01/24/2018 13:11:04
moebear: 去掉a是沒有用的 上車囉 01/24 13:10
dces4212: sorry 好像不是直接去掉 我菜雞 01/24 13:18
F04E: 為什麼我看到 (⊙⊙) 是我眼睛業障重嗎? 01/24 13:46
jerryh001: 你的程式碼長的像奶子 01/24 14:02
Phenomenon: 我也看到怪東西 01/24 14:03
dces4212: https://i.imgur.com/HeOYAWK.jpg 01/24 14:03
dces4212: 原po貼的是這張 大家冷靜 我不該說去掉/a的 sorry 01/24 14:04
已更正回來,所以有其他的方式可以讓大家直接看圖不用點進去嗎?二樓的方式怎麼做啊 ※ 編輯: zzss2003 (60.248.26.157), 01/24/2018 14:06:12
SecondRun: https://i.imgur.com/QMpbPaY.png 01/24 14:28
moebear: 右鍵 複製連結網址 01/24 14:35
dces4212: 回歸正題一下 你說的a沒問題 想請問一下h = h是啥意思呢 01/24 15:52
拍謝,沒寫清楚,第二行print出來的值是h ※ 編輯: zzss2003 (60.248.26.157), 01/24/2018 16:38:09
hunandy14: 我猜是想說這個意思吧 01/24 22:19
hunandy14: printf("%p\n", str); 01/24 22:19
hunandy14: printf("%p\n", &str[0]); 01/24 22:19
hunandy14: 你用 %c 輸出的結果是字元 不是地址 01/24 22:24
對pointer做dereference的結果本來就是h(字元)不是嗎?怎麼會是地址呢?
hunandy14: 字串是好幾個連續字元組合,結尾帶 \0 結束 01/24 22:24
hunandy14: 字串地址就是也就是這一串的開頭,會是第一個字元 01/24 22:25
※ 編輯: zzss2003 (60.248.26.157), 01/25/2018 10:18:48
dogalan: 我覺得樓上說的是對的 這句話的意思就只是str是存第一個 01/25 17:46
dogalan: 字元的位址這樣而已 不要想得太複雜 01/25 17:47
dogalan: 然後*p不是應該用%s來輸出嗎...你用%c當然只會輸出字元 01/25 17:48
hunandy14: 哪裡 deref(*) 第一行直接印,第二行取ref(&) 01/25 21:21