精華區beta Programming 關於我們 聯絡資訊
應該是不一樣的吧!? char *str1 = "string"; const char str2[] = "string"; str1會指到literal pool裡的字串位址 str2卻不是指到literal pool裡的字串位址 而是原本陣列的位址 兩種字串的產生方式不太一樣 第二種其實就是 const char str2[] = {'s', 't', 'r', 'i', 'n', 'g', '\0'}; 印象中是這樣啦 有錯請指正... ※ 引述《ykjiang (Yukuan)》之銘言: : char *str = "string"; : 就是 : const char str[] = "string"; : 的簡略寫法,這是 C++ 從 C 那沿襲來的陋習。已經是慣用法了。 : 如果你還不懂,建議先去搞清楚 stack, heap 及 literal pool 間的差別。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.175.214.138 ※ 編輯: smallsheep96 來自: 218.175.214.138 (10/18 21:32)