web-dev-qa-db-ja.com

バックスラッシュゼロ区切り文字 '\ 0'

私は見た '\0'混合バイナリファイル(UTF8文字列+バイナリデータ)の区切り文字として使用されます。誰かが何を説明できますか'\0'勉強するのに良い場所を意味するのか、それとも指し示すのか?

21
bancer

これはヌル文字です。このウィキペディアの詳細情報 記事

23
kabuko

2文字の\0表現はCソースコードで NUL文字 を表すために使用されます。これはASCII値0の(単一の)文字です。

NUL文字は、Cスタイルの文字ストリングで使用され、ストリングの終わりがどこにあるかを示します。たとえば、文字列"Hello"は16進バイトとしてエンコードされます。

48 65 6c 6c 6f 00

この場合、Cコンパイラは、二重引用符で囲まれた文字列の最後に00バイトを自動的に追加します。定数を"Hello\0"と記述した場合、Cコンパイラは以下を生成します。

48 65 6c 6c 6f 00 00
13
Greg Hewgill

\0は、8進文字のエスケープである\000の省略形です。一般に、8進数が後に続かない8進数エスケープは短縮できます。これは、元のCエスケープシーケンス(\n \r \t \f \v \b \000は、8進表記の文字値です。ANSIが一部を追加し、最近では\vはややまれで、より多くの最近の言語では実装されていません。 )。

7
geekosaur