自增运算符的运算过程解析

表达式

表达式是变量,常数与运算符(和括号)的结合,例如:a=a+1,这里的加号"+"是一个双目运算符,有一个变量a以及一个常数1参与运算,它的返回值是a+1的值。再举个例子:a= -1, 这里的负号"-"是一个单目运算符,仅有一个常数1参与运算,它的返回值为-1,然后赋值给a

a++和++a都是表达式,不同的是它们的计算过程分为两步,对于后置自增a++,先返回表达式的值(a),再对a自增1,而前置自增++a运算与之相反。

二、自增运算符的计算过程

请思考以下代码的输出内容:

int a=1;
a=a++;
printf("%d",a);

首先,赋值运算符的优先级是最低的,所以计算过程是这样的:

1.计算表达式a++的值,a为1,所以表达式的值为1;

2.a自增1,此时a=2;

3.将表达式的值赋值给a,此时a又变为了1。所以最后的输出结果是a=1。

请再思考以下代码的输出内容:

int a=1;
a=a++ + ++a;
printf("%d",a);

1.从左往右计算,先计算前一个表达式a++的值,为1
2.a自增1,此时a=2
3.再计算后一个表达式++a的值
4.++a是前置自增,它是先自增1,此时a=3,再返回这个表达式的值,为3
5.进行赋值运算,前一个表达式+后一个表达式=1+3=4,所以输出结果为a=4

最后一题:

int a=1;
a=a++ + a++ * ++a;
printf("%d",a);

1.从左往右计算,先计算第一个表达式a++的值,1
2.a自增1,此时a=2
3.再计算第二个表达式a++的值,2
4.a自增1,此时a=3
5.计算最后一个表达式++a的值是,a自增1,此时a=4,再返回这个表达式的值,4
6.进行赋值运算,第一个表达式+第二个表达式*最后一个表达式=1+2*4=9,所以输出结果为a=9

三、总结

前置自增++a是先自增,后返回表达式的值,而后置自增a++是先返回表达式的值,再自增。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值