关于 (++i)+(++i)...

int  i = 3;

printf("%d", (++i) + (++i));

 

打印结果 不是6 ,不是7  ,不是8,也不是9,   而是10。

 

因为 (++i)+(++i) 是先对第一个  i   加1   ,现在  i 等于 4 ,  然后再对第二个 i 进行加 1, 现在的 i  等于5

然后把 5 赋值给 第一个 i 和第二个 i,  所以结果就是 5+5 =10;

 

(++i)+(++i)+(++i)   这个表达式 则可以看成  ((++i)+(++i))+(++i)  即 先把前两项算出结果再与第三项

计算 ,  由上面可知 前两项的结果为10 ,   然后10再加 ++i    ,  也就是加上6,   所以结果为16。

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值