永发信息网

请问C语言的问题

答案:4  悬赏:20  手机版
解决时间 2021-05-02 15:37
  • 提问者网友:皆是孤独
  • 2021-05-01 17:57

main()

{int m=011,n=11;

printf("%d %d\n",++m,n++);}

输出结果是10 11

不明白为什么是10

最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-05-01 18:55

m=011 这是8进制的转换为十进制


m=1*8+1=9


n=11


++m=10


n++=11


所以结果为 10  11

全部回答
  • 1楼网友:七十二街
  • 2021-05-01 20:50
m=011表示m是八进制11,相当于十进制9,也就是m=9,++m,++在前面表达式的值为10,所以输出10。
  • 2楼网友:人類模型
  • 2021-05-01 20:03

011是八进制,凡八进制表示需要前加0

11是十进制

而你输出%d要求十进制  八进制数011转成十进制是10

你可以用电脑带的计算器算

  • 3楼网友:举杯邀酒敬孤独
  • 2021-05-01 19:53

011是八进制,在C中,0开始的数字是八进制

011是十进制的9

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯