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

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

011 是八进制的数 不是十进制的 11

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

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

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

结果为 10

希望对你有帮助啊!

你可以在找一下,各进制的表示方法!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-19
以0开头的是8进制数,八进制011转换成10进制是:9

printf("%d\n",++a)以10进制输出 ++a(前加加是先加再运算),结果是 9+1 为10.。。

你可以printf("%o\n",++a) 输出一下就看到结果是:12 (八进制的 12)
第2个回答  2012-12-19
我也是菜鸟,不过看到你的提问,百度了一下,懂了。
a=011,说明是八进制的一个数,转换成十进制是9,即a=9;
而++a的意思是先把a加上一再输出,即a=a+1;,懂了吗,还有,菜鸟一般先百度而并不是百度知道,这个比较慢……
第3个回答  2012-12-19
a = 011是八进制,转换为十进制为a = 9
%d 是打印十进制的
%o是打印八进制的,你试试...
第4个回答  2020-05-22
011=9,所以++a=10
相似回答