为什么在C程序中int 070的输出是56?
你能解释一下吗? 为什么它给出了56个值作为输出?
#include #include void main() { int x = 070; printf("%d", x); getch(); }
以0
开头的任何整数文字(整数常量)都是八进制表示 。
引用C11
,章节§6.4.4.1, 整数常量
octal-constant:
0
八进制常数 八进制数
并且,根据章节§7.21.6.1,对于带有printf()
%d
格式说明符,( 强调我的 )
d,i
int
参数转换为带符号的十进制 […]
因此, 八进制70 ==十进制56 。