这个运行结果是多少?为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/10 23:09:14
#include<stdio.h>
main()
{int a=-2;
printf("%d,%o,%d\n",a,a,--a);
}

楼上的运行结果对
中间的。。。,是各编译器不同,就不同
之所以没有输出八进制数,因为八进制不能为负数
在执行printf之前,先进行a的自减操作变成-3
然后输出

-3,。。。,-3

-3,37777777775,-3 .
printf函数是从后往前走的,即先计算十进制的--a,再是有符号八进制的a,再是10进制的a。