中易网

c++基本概念,求解释 int a=011 printf("%d\n",++a) 结果 a是 10

答案:5  悬赏:80  
解决时间 2021-01-11 07:24
  • 提问者网友:情歌越听越心酸
  • 2021-01-11 04:17
c++基本概念,求解释 int a=011 printf("%d\n",++a) 结果 a是 10
最佳答案
  • 二级知识专家网友:纵马山川剑自提
  • 2021-01-11 05:13
011 是八进制的数 不是十进制的 11

八进制 的表示方法是 0开头的 例如 026 03003 012261 都是八进制的

你这个题,打印的时候是 %d 十进制,所以011的八进制要转换成 十进制,即 9

++a 是先加,在进行运算,所以,先将a 加1 在打印

结果为 10

希望对你有帮助啊!

你可以在找一下,各进制的表示方法!
全部回答
  • 1楼网友:笑迎怀羞
  • 2021-01-11 07:51
a的初值为11;
输出++a意思是a=11+1;然后输出a,此时a的值应该为12
  • 2楼网友:愁杀梦里人
  • 2021-01-11 06:51
我也是菜鸟,不过看到你的提问,百度了一下,懂了。
a=011,说明是八进制的一个数,转换成十进制是9,即a=9;
而++a的意思是先把a加上一再输出,即a=a+1;,懂了吗,还有,菜鸟一般先百度而并不是百度知道,这个比较慢……
  • 3楼网友:一把行者刀
  • 2021-01-11 06:39
a = 011是八进制,转换为十进制为a = 9
%d 是打印十进制的
%o是打印八进制的,你试试...
  • 4楼网友:傲气稳了全场
  • 2021-01-11 05:56
以0开头的是8进制数,八进制011转换成10进制是:9
printf("%d\n",++a)以10进制输出 ++a(前加加是先加再运算),结果是 9+1 为10.。。
你可以printf("%o\n",++a) 输出一下就看到结果是:12 (八进制的 12)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息