This question already has answers here:
What is special about numbers starting with zero?
(4个答案)
9个月前关闭。
你能解释一下吗?为什么给出56的输出值?
并且,根据第7.2.1.6.1节的规定,对于带有
从而,octal 70 == decimal 56。
(4个答案)
9个月前关闭。
你能解释一下吗?为什么给出56的输出值?
#include <stdio.h>
#include <conio.h>
void main()
{
int x = 070;
printf("%d", x);
getch();
}
最佳答案
0
开头的任何整数文字(整数常量)都是octal representation。
引用C11
,第§6.4.4.1章,整数常量
octal-constant:
0
八进制常数八进制数字
和
八位数字:
0 1 2 3 4 5 6 7
并且,根据第7.2.1.6.1节的规定,对于带有
%d
的printf()
格式说明符,(强调我的)d,i
int
参数转换为带符号的十进制[...]从而,octal 70 == decimal 56。
关于c - 为什么在C程序中int 070的输出为56? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36650007/
10-11 21:01