使用
使用下面的代码片段:
int a = 011;
printf("a = %d", a);
为什么结果是
a = 9
011
为八进制值,其十进制值为9。前面带0
的整数字面值表示八进制值。
%o
指定符在printf
中打印八进制值。 int
字面值或int
常量中的前导0
表示八进制值。它被称为八进制常数。
相关:C11
标准,第6.4.4.1章,整型常量,第3段,
八进制常数由前缀
0
(可选)和数字0
到7
的序列组成。
使用0
作为数字字面值的开头,您可以指定八进制系统。而八进制中的11
为1*8 + 1 = 9