→ james732:置底文十三戒第四看一下 08/21 23:29
推 stonehomelaa:你確定書上是這樣教你的嗎 08/21 23:30
→ atx236529:4. 不要試圖用 char* 去更改一個"字串常數" 08/21 23:37
→ atx236529:所以我也在這裡困擾很久,書上說可以通過編譯 08/21 23:38
→ atx236529:但我自己實際執行事實上雖可以,卻馬上就出現錯誤 08/21 23:38
→ atx236529:所以就不知道哪裡出問題@@ 08/21 23:38
→ james732:char *s = "abc"; 這樣 "abc" 所存的那個地方是'唯讀'的 08/21 23:39
→ james732:通過編譯跟可以執行是兩回事喔,編譯器抓不出這種東西 08/21 23:40
→ atx236529:恩 果然跟我想法一致,那個abc不能更改,感謝詹姆士大大! 08/21 23:43
推 kswiss11:字串常數是個常數呀,常數是唯讀,不能更改 08/21 23:57
→ atx236529:可是書上說這個*s="abc";是指標變數..所以我一直搞不懂 08/22 00:05
→ atx236529:這環節,是課本表示錯,還是我想法錯了? 08/22 00:05
→ james732:s是一個指標變數,指向某個空間,但那個空間不能修改 08/22 00:06
→ atx236529:所以我歸納 *s是指標變數,但他指過去的內容是常數 08/22 00:06
→ atx236529:這個想法對嗎?y 08/22 00:07
→ james732:就是這個意思 08/22 00:07
→ atx236529:這樣就是綜合j大跟k大我所歸納的結果 08/22 00:07
→ atx236529:恩恩 感謝j大k大 終於有茅塞頓開的感覺了! 08/22 00:08
推 Favonia:有一些東西是歷史的痕跡,可以的話請寫 const char* :) 08/22 04:43
→ Favonia:據說是因為很多舊的程式碼都這樣寫所以編譯器不太能抓... 08/22 05:02