通常,如果在程式中定義了乙個字串,那麼為了節省記憶體,會把相同的字串儲存到乙個單獨的、相同的位置,此時如果用多個字元指標指向它,那麼指標的值會相同。常量字串位於c/c++的文字常量區,在程式結束以後由系統釋放。
char
* p_string1 =
"example";
char
* p_string2 =
"example";
p_string1==p_string2;
//返回true
與字元指標不同,如果宣告多個字元陣列,並且初值相同,那麼實際上她們的位址是不同的,也就是說實際的分配了記憶體,並將字串常量複製到分配的位址;
char string1=
"example";
char string2=
"example";
string1==string2;
//返回false;
C C 字元陣列 字元指標和字串常量
c 有兩種處理字串的方式,除了沿用c風格字串,另一種方法是借助用string class庫。字串是一系列儲存在連續記憶體位元組中的字元 每個字元對應乙個位元組 所以可以將字串儲存在字元陣列中。以下四種宣告方式都是字元陣列,但是只有第乙個不是字串,其中無效字元 null character 0 其在機...
字串常量和字元陣列
1.字串常量 char cstringa hello word 並不建議這樣寫 const char cstringb hello word 建議寫成這樣 cstringa a 執行時出錯,字串常量不允許修改 實際上,c語言中的標準,對於字串常量必須要賦值給const char 的變數,這樣就可以理...
字串常量和字元陣列
一.字串都是以 0 結尾 二.凡是雙引號中的內容,皆是字串。也就是,雙引號會在它內容後自動加乙個 0 且佔乙個位元組數。三.單引號中容納的是char型別的字元常量,且僅能容納乙個 四.字元陣列中不指定長度,系統會自動匹配適應的長度。五.如果對字元陣列沒有初始化完全,系統會在未賦值的地方新增 0 ch...