我无法理解以下代码产生的输出:
#include <stdio.h>
int main()
{
int var = 010;
printf("%d", var);
}
以上代码的输出为8
。
答案 0 :(得分:1)
前导0
引入一个八进制常量,因此010
是八进制的,十进制为8。如果要使用二进制,请写0b010
(十进制为2)。
答案 1 :(得分:1)
010
是integer constant(即文字),以octal进行编码:
001 == 1
002 == 2
...
007 == 7
010 == 8
当您使用格式说明符%d
调用printf
时,它会打印以十进制编码的给定有符号整数的值,因此,您将看到写入到{输出。