私は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'
がインデックス6(internalの後'\0'
)に格納されているのに、宣言された文字列が格納されていないのはなぜですか?