天天看點

《C陷阱與缺陷》一1.4 整型常量

本節書摘來自異步社群《c陷阱與缺陷》一書中的第1章,第1.4節,作者 【美】andrew koenig,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

如果一個整型常量的第一個字元是數字0,那麼該常量将被視作八進制數。是以,10與010的含義截然不同。此外,許多c編譯器會把8和9也作為八進制數字處理。這種多少有點奇怪的處理方式來自八進制數的定義。例如,0195的含義是1×82+9×81+5×80,也就是141(十進制)或者0215(八進制)。我們當然不建議這種用法,ansi c标準也禁止這種用法。

需要注意這種情況,有時候在上下文中為了格式對齊的需要,可能無意中将十進制數寫成了八進制數,例如:

繼續閱讀