打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
自加运算
1.关于自加运算,有前自加和后自加的问题:i++表示后自加,表示先使用此时i的值,使用完后再把i的值加一比如:
a=(i++)+(i++)+(i++);此时是后加运算,那就先使用此时i的值:3,故a=3+3+3=9.然后在执行,i++,i++.i++最后i的值是6

2.而++i表示前自加,就是先把j的值加一,然后再使用j的值:如: int i =4,b=++i;那么此时就是先把i的值加一,然后再i的值赋给b,即b=5,j=5

但是b=(++j)+(++j)+(++j);这样的表达式用不同的编译器执行的顺序也是不同的。
用vs2008 情况1.先执行j++,j++,j++此时j的值就是6。那么b=6+6+6=18

vc++ 6.0 结果:b=(++j)+(++j)+(++j)=5+5+6=16;
解释:编译先算前两个自加:++j.++j目的就是为了算(++j)+(++j)=之间的加号即 5+5  然后在算一个一个++j即5+5+6=16

我们可以多自加几个看看:
#include <stdio.h>

main()
{
       int i=5, b;
       b= (++i) + (++i) + (++i) + (++i);
      printf("b=%d\n",b);

}
结果:
b=31
Press any key to continue

即7+7+8+9=31

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
2.2 多项式
21天搞定小学奥数痛点Day3
c语言 自加符和自减符的疑问
逗号表达式的运算法则是怎么样的
第三讲:四年级- 定义新运算(2)
培优竞赛辅导二:有理数的巧算
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服