我正在复习我的 C++,偶然发现了一个关于字符串、字符数组和空字符 ( '\0'
) 的奇怪行为。以下代码:
#include <iostream>
using namespace std;
int main() {
cout << "hello\0there"[6] << endl;
char word [] = "hello\0there";
cout << word[6] << endl;
string word2 = "hello\0there";
cout << word2[6] << endl;
return 0;
}
产生输出:
> t
> t
>
幕后发生了什么?为什么字符串文字和声明的 char 数组存储't'
at 索引 6(在 internal 之后'\0'
),但声明的字符串不存储?