所以我做了以下测试:
char* a = "test";
char* b = "test";
char* c = "test\0";
现在的问题是:
1) 可以保证a==b
吗?我知道我在比较地址。这并不是要比较字符串,而是要比较相同的字符串文字是否存储在单个内存位置
2)为什么不a==c
呢?编译器不应该能够看到它们指的是同一个字符串吗?
\0
3) 是否在 的末尾附加了一个额外的内容c
,即使它已经包含一个?
我不想为此问 3 个不同的问题,因为它们似乎有点相关,抱歉。
注意:标签是正确的,我对 C++ 感兴趣。(尽管请指定 C 的行为是否不同)