2011-06-17 167 views
15

我看過被用作混合二進制文件(UTF8字符串+二進制數據)的分隔符。任何人都可以解釋什麼'\0'意味着或指向一個好的學習地點嗎?反斜槓零分隔符' 0'

回答

18

這是空字符;更多信息在這個維基百科article

6

\0\000這是一個八字符轉義的簡寫。一般來說,您可以縮短任何八進制數字之後沒有的八進制轉義。這源自原始C轉義序列(\n \r \t \f \v \b \000,其中後者是八進制符號中的字符值; ANSI增加了一些,並且\v現在有點罕見,許多更現代的語言不實現它)。

11

的兩字符\0表示在C源代碼用來代表空字符,這是(單)字符的ASCII值0

NUL字符是用C風格字符串用於指示字符串的結尾在哪裏。例如,該串"Hello"被編碼爲十六進制字節:

48 65 6c 6c 6f 00 

在這種情況下,C編譯器自動上的任何雙引號字符串的末尾添加00字節。如果您將常量寫爲"Hello\0",則C編譯器將生成:

48 65 6c 6c 6f 00 00