/*如下段代码*/ int a = 100; int b = 100+a++; printf("%d\n%d\n",a,b);

/*如下段代码*/
int a = 100;
int b = 100+a++;
printf("%d\n%d\n",a,b);
/*输出内容为101 200
为什么不是 101 201?
*/

int a=100,b;
a++和++a都是自加表达式,
int a=100,b=a++;先表达式a++的值是100,然后a自加1,a=101;
int a=100,b=++a;先a自加1运算,a的值是101,然后表达式的值是101;
结果说明自加运算符(++),不管是构成前缀表达式++a还是后缀表达式a++,都使变量a中存放的值增1,只是自加1的先后顺序不同
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-01-22
++运算符前缀和后缀的效果不一样,a++是后缀,该表达式本身的值是a原来的值,就是100,但是a会增加1,所以之后a变成了101追问

对啊,a应该是101,b=100+a ;
b的输出应该是201啊,为什么是200呢?

追答

a++的值是a加一之前的值,是100,这时候a还没有加一,之后才加一

本回答被网友采纳
相似回答