C++の奇妙な不一致に気づきました。
私がこのコードを持っているとしましょう:
const char myChars[] = "12345";
std::cout << myChars;
出力は次のとおりです:12345
ただし、次のように変更すると、次のようになります。
const char myChars[] = {'1','2','3','4','5'};
std::cout << myChars;
次に、出力は次のようになります。12345__SOME_RANDOM_DATA_IN_MEMORY__
coutが最初のバージョンの長さを知っているように見えるが、2番目のバージョンの長さを知らないのはなぜですか?また、coutは長ささえ知っていますか?
ありがとう。