Deb*_*obi 2 c++ arrays string gcc6
int main() {
string str[5] = "ABCD";
std::cout << str[3] << std::endl;
std::cout << str[0] << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码打印:
A B C D
A B C D
没看懂,怎么str[3]打印ABCD?
编译器:GCC 6.3
该代码不是有效的 C++ 代码,不应编译。并且它不适用于 7 以上的 clang 和 gcc 版本。这很可能是旧版 gcc 中的一个错误,在版本 7 中得到了修复。
std::string str[5]
Run Code Online (Sandbox Code Playgroud)
您在这里拥有的是一个包含 .5 个元素的 C 数组std::string。这是初始化它的方式:
std::string strings[5] = {"1st string", "2nd string", "3rd string", "4th string", "5th string"};
Run Code Online (Sandbox Code Playgroud)
在这种情况下strings[0]将是"1st string"并且strings[3]将是"4th string"。
但是不要这样做。不要在 C++ 中使用 C 数组。使用std::vectororstd::array如果您需要一个字符串数组:std::array<std::string> strings或std::vector<std::string> strings。
话虽如此,我怀疑您只想要一个字符串,也就是:
std::string str = "ABCD";
Run Code Online (Sandbox Code Playgroud)
在这种情况下str[0]是'A'和str[3]是'D'
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |