C语言a++问题
为什么会打印出9呢?#include <stdio.h>main()
{
int a = 011;
printf("%d", a ++);
} 好像是 进制问题0 开头好像是八进制 ,你看看对不{:5_106:} 你把011 前面的0去了就是十进制了 011 是八进制,换算成十进制就等于9。
a++是先运算再加1,所以得到的结果还是a没加1之前的值9(可以在后面再打印出a的值,就可以明显的观察到结果了)。
如果是++a的话,就先进行加1再运算,那么打印出来的的值就是9+1=10。 小人 发表于 2015-4-11 10:58
好像是 进制问题0 开头好像是八进制 ,你看看对不
对啊 小人 发表于 2015-4-11 10:59
你把011 前面的0去了就是十进制了
对啊 ANDES 发表于 2015-4-11 11:21
011 是八进制,换算成十进制就等于9。
a++是先运算再加1,所以得到的结果还是a没加1之前的值9(可以在后面 ...
厉害{:9_232:} 哥斯拉不说话 发表于 2015-4-11 18:15
厉害
{:5_91:}
页:
[1]