2013-04-22 88 views
1

我不明白爲什麼這個代碼將打印24和20INTS用C printint奇怪的事情

int main(){ 
    int m = 24, n = 024; 
    printf("%d %d", m, n); 
    return 0; 
} 
+2

'024'是一個八進制常數,'2 * 8 + 4 = 20'。 – 2013-04-22 19:29:49

回答

3

在C,數字開始以「0」是八進制。所以024裝置24 ,其值爲2•8 + 4 = 20。

3

前導0表示八,這是底座8,以便:

2 * 8 + 4 == 20