[問題] 字串拷貝時為何不能直接 s1 = s2

看板C_and_CPP (C/C++)作者 (ha~~~~~)時間16年前 (2010/04/21 01:43), 編輯推噓3(306)
留言9則, 4人參與, 最新討論串1/1
小弟最近因為工作的關係 要回頭看c語言 對書中的一段話有一些疑惑 就我的理解 如果要複製字串的話 也許可以 char s1[] = "Test string"; char *t1; t1 = s1; 但書上確有一段文字寫著 "為何我們不直接寫 s = t 就好呢??因為這樣只是抄了指標,而沒有複製其所指的字串." 看了我感到蠻疑惑的 當我們t1 = s1時 不是就可以利用t1來讀寫s1所指到的內容嗎?? 小弟用的書是The C programming language 中文版 不曉得版上的各位先進能否指教一下小弟 感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.56.235.142 ※ 編輯: lolicity 來自: 61.56.235.142 (04/21 01:44)

04/21 01:46, , 1F
有的時候會希望 t1 與 s1 是完全獨立的兩個字串
04/21 01:46, 1F

04/21 01:47, , 2F
因為你會讀寫到一模一樣的記憶體位址, 如果你要的是兩份
04/21 01:47, 2F

04/21 01:47, , 3F
各自的copy, 只copy位址的讀寫會改到同一份, 而不會有兩
04/21 01:47, 3F

04/21 01:47, , 4F
份獨立的copy....
04/21 01:47, 4F

04/21 01:48, , 5F
喵的~~j大你要不要這麼快....XD
04/21 01:48, 5F

04/21 01:49, , 6F
XDDDDD
04/21 01:49, 6F

04/21 01:51, , 7F
幸好小弟我沒有衝動回文寫個簡圖來騙P幣....XDDD
04/21 01:51, 7F

04/21 02:05, , 8F
感謝樓上的各位大大~~沒想到這麼快就有人回應~~太感謝了
04/21 02:05, 8F

04/21 04:35, , 9F
#1A9bt4o2 我之前問過類似的 參考看看
04/21 04:35, 9F
文章代碼(AID): #1BpUUipc (C_and_CPP)
文章代碼(AID): #1BpUUipc (C_and_CPP)