2011-01-10 52 views

回答

-1

編號 \ x0是NULL的文字。 「000」是一個數字,在內存中有不同的表示形式。

+2

`\ x0`(或`\ 0`)是NUL字符的文字。 NULL(帶有兩個L)通常是爲指針保留的。 – 2011-01-10 05:02:11

+1

`「000」`不是一個數字 - 它是一個字符串。 – mizo 2011-01-10 06:07:31

6

不,它與"000"不一樣。它比較三個空(0)字節。每個字節都是二進制的實際零值。這是不同於"000",其是含有用於可打印的字符0,這是48個ASCII值的字符串(或30進制)

所以"000"將是相同"\x30\x30\x30"

1

否 - 與"000"比較不同。它與三個空字符進行比較。一個等效的,可能更多預期的字符串將是"\0\0\0"。或者只是一個填充了0的3字符數組,在這種情況下,代碼只能檢查3個字符。

4

"\x0\x0\x0"等於{ 0x00, 0x00, 0x00, 0x00 }。第四個零是字符串null終止符。

所以要回答你的問題 - 不,這與"000"相比並不相同。

'\x0'是十六進制零,而'0'是字符0(十六進制30)的ASCII碼。

1

\x0代表值爲0的char0不同,它是帶有代碼0x30的ASCII字符。

0

知道變量version的定義會很有趣。是void *char *或其他一些奇怪的鑄造。編譯過程中可能會發出警告。

看看version是如何初始化以確保沒有錯誤也是謹慎的。在程序中檢查(缺少)版本號肯定是一種奇怪的方式。

相關問題