"ABC" 和 "ABC" ) 在C++中有什么区别?

What's the difference between "ABC" and string("ABC") in C++?

本文关键字:ABC 什么 区别 C++      更新时间:2023-10-16

我有以下代码片段...

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

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

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

string("ABC")的类型是std::string构造为仅包含 3 个元素,for(char c: string("ABC")) cout << c << endl;将输出 3 个元素,'A''B''C'