【发布时间】:2013-04-15 19:56:05
【问题描述】:
我不明白为什么这段代码会打印 24 和 20。
int main(){
int m = 24, n = 024;
printf("%d %d", m, n);
return 0;
}
【问题讨论】:
-
024是一个八进制常数,2*8 + 4 = 20。
我不明白为什么这段代码会打印 24 和 20。
int main(){
int m = 24, n = 024;
printf("%d %d", m, n);
return 0;
}
【问题讨论】:
024 是一个八进制常数,2*8 + 4 = 20。
在 C 中,以“0”开头的数字是八进制。所以024 表示 248,即 2•8 + 4 = 20。
【讨论】:
前导0表示八进制,即以8为底。所以:
2 * 8 + 4 == 20
【讨论】: