(++i)+(++i)+(++i)和(i++)+(i++)+(i++)问题解答

问题:
int i=5,j=5;
p=(i++)+(i++)+(i++);
q=(++j)+(++j)+(++j);
输出p和q的结果为多少?
解答
首先,要明白几个知识点:
1)
i++计算步骤是:
第一步:(i++这个运算符结果)=i;(重点:返回的是一个临时对象
第二步:i=i+1;
++i计算步骤是:
第一步:i=i+1;
第二步:(++i这个运算符结果)=&i;(重点:返回的是对i的引用
2)
在计算(i++)+(i++)+(i++)和(++j)+(++j)+(++j)过程中,实际的计算顺序是【【(i++)+(i++)】+(i++)】和【【(++j)+(++j)】+(++j)】,也就是说从左往右,依次两个两个的做加法。
下面来分析p=(i++)+(i++)+(i++);p等于多少。
  首先计算【(i++)+(i++)】等于多少,对于第一个(i++)等于5,此时i已经变为6了,因此第二个(i++)等于6。因此【(i++)+(i++)】=5+6=11,同理可得p=【11+(i++)】=11+7=18。
接着来分析q=(++j)+(++j)+(++j);q等于多少。
  首先计算【(++j)+(++j)】,对于第一个(++j):先是j=j+1,此时j=6,同时(++j)对j进行一个引用,也就是目前也等于6,对于第二个(++j)此时,也是先j=j+1=6+1=7,(++j)对j进行一个引用,此时也就是等于7,注意,第一个(++j)也是对j的引用,此时也要变成7,所以最后【(++j)+(++j)】=【7+7】=14,然后计算【14+(++j)】=14+8=22。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值