在C ++中,“ ABC”和string(“ ABC”)有什么区别?

时间:2018-10-11 05:21:38

标签: c++ string

我有以下代码段...

for(char c: "ABC") cout << c << endl;
for(char c: string("ABC")) cout << c << endl;

第二个工作正常。但是第一个在不同的环境中表现不同。两者有什么区别?

1 个答案:

答案 0 :(得分:6)

"ABC"是类型为const char[4]的{​​{3}},即一个包含4个char的数组,其中包括终止空字符'\0'for(char c: "ABC") cout << c << endl;将输出所有4个元素。

string("ABC")的类型为std::string,仅包含3个元素,for(char c: string("ABC")) cout << c << endl;将输出3个元素,'A''B'和{{1 }}。