にヌルターミネータを入れてください、私はC文字列がブレース囲まれたリストを使用して初期化されるとき、多くの書籍やオンラインチュートリアルでは、それは次のように行われていることに気づいた:はなぜ我々はブレース囲まれたchar配列の初期化
char string[100] = {'t', 'e', 's', 't', '\0' };
Shouldn」すべての未指定の値は自動的に0(別名'\0'
)に設定されますか?
GCCとMSVCの複数のバージョンでこれをテストしましたが、実際にはすべての値がゼロに設定されていますが、初期化時にヌルターミネータを明示的に記述する特別な理由があるのでしょうか。
私は古いバージョンのC標準では余分な要素をゼロにする必要があるとは言いませんでした。 – Barmar
ヒント: 'char string [] = {'t'、 'e'、 's'、 't'};'と書くとどうなりますか?これはprintf()に渡すと良いでしょうか? – Jens
@Jens配列のサイズが指定されていないため、これとは異なります。 – Barmar