简单的C语言帮帮忙为什么啊????

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:14:05
main()
{int x=023;
printf("%d",--x);
} 为什么会等于18?? 不应该是 1-023=22吗》???

int x=023 , 如果一个前面加了0,就表示这个8进制的数,八进制23等于十进制的19
所以结果就是18了

int x=023; //定义一个整形变量x,并初始化为023(注意,023是个八进制数,换算为十进制为19);

printf("%d",--x); //以十进制整数格式输出--x(x==19,所以--x等于18);

023是八进制 等于 十进制 的19
--x当然等于18喽