2010-08-20 48 views

回答

3

的printf的文件說:

字符%後跟零個或多個下列標誌:

值應被轉換成一個「‘替代形式’」。 對於o轉換,輸出字符串的第一個字符 設爲零(如果 已不爲零,則以 爲前綴0)。對於x和X轉換, 非零結果 具有前綴爲 的字符串'0x'(或用於X轉換的'0X')。對於a,e,e,f,f,g和g 轉換,結果將始終爲 包含小數點,即使沒有 數字跟隨它(通常,小數點 點出現 這些轉換僅在數字出現時纔會發生)。 對於g和G轉換,尾隨 零並不會從結果 中移除,因爲它們本來就是這樣。對於其他 轉換,結果爲undefined.conversions,結果未定義。

的標誌MSDN文檔是here

所以%#x的值被簡單地以0x前綴。其中%x將產生34ab%#x會產生0x34ab

2

printf與說明符x使用時,#使輸出被前綴0x提供被印刷的值大於0其他