所以我做了如下試驗:包含' 0'的字符串文字 - 爲什麼它們不一樣?
char* a = "test";
char* b = "test";
char* c = "test\0";
而現在的問題:
1)能夠保證所有的a==b
? 我知道我在比較地址。這並不意味着要比較字符串,但相同的字符串文字是否存儲在單個內存位置
2)爲什麼不是a==c
?編譯器不應該看到它們指的是相同的字符串嗎?
3)c
的末尾是否附加了\0
,即使它已經包含了一個?
我不想問這3個不同的問題,因爲他們似乎有點相關,對不起'布特那。
注:標籤是正確的,我對C++感興趣。 (雖然請說明C的行爲是否不同)
應該是'char const * a = ...'。 –
a和b具有相同的值,但這並不一定意味着它們是_same_字符串。 –
@HunterMcMillen - 其實這就是它的意思。 –