這是一個好習慣嗎?該代碼可以編譯和運行,但我不知道這是否是效仿 在C代碼的好做法,改變一個常量字符* str1 =「abc」
- 我們寫
const char *str1 = "abc";
- 再後來,可以說有一個指針變量
char *str2
指向動態分配的內存 - ,然後我們就
str1 = str2
所以現在都str1
和str2
指向動態分配的內存
所以,現在我們已經失去了軌道任何指向的指針。雖然在這個代碼中,我們可能不需要它,但我不知道什麼是處理這些問題的最佳推薦方式。
總的問題是我們需要一個最初被聲明爲abc的字符串,後來依賴於用戶輸入,我們可能希望使用用戶提供的字符串。
我不是穿着頸須的開發者,但爲什麼有人會改變任何表示爲永恆的東西? – 2013-02-15 10:15:41
@GrantThomas但他沒有改變任何標記爲const的東西。聲明中的'const'限定符引用str1指向的內容,而不是str1本身。 – Clyde 2013-02-15 10:17:30
@克萊德嗯,是的,但是我的陳述仍然存在,無論你是在談論事情還是事情的事情。看起來,開發人員會希望它不變。 – 2013-02-15 10:19:45