應該是不一樣的吧!?
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)