Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
例えば:
char a[] = "abc\0";
標準 C0では、文字列の末尾に既にゼロがある場合でも、別のバイトの値を追加する必要があると言っていますか? では、sizeof(a)4 または 5 に等しいですか?
0
sizeof(a)
すべての文字列リテラルには、文字列の内容に関係なく、暗黙の null ターミネータがあります。
標準 (6.4.5 文字列リテラル) は次のように述べています。
文字列リテラルまたはリテラルから生じる各マルチバイト文字シーケンスに、値ゼロのバイトまたはコードが追加されます。
そのため、文字列リテラル"abc\0"には、明示的なものに加えて、暗黙的な null ターミネータが含まれています。したがって、配列aには 5 つの要素が含まれます。
"abc\0"
a