c语言中 i=3 j=(++i)+(++i)+(++i) 请问j等于多少? 谢谢各位诶。

 我来答
答鸿文万泽
2019-03-29 · TA获得超过2.9万个赞
知道小有建树答主
回答量:1.1万
采纳率:36%
帮助的人:898万
展开全部
这个应该因编译器而异吧
例如VC++编译器的结果为:18
分析过程:
int
i=3;
int
j=(++i)+(++i)+(++i) ;
要知道前缀++操作符优先级高于运算符+的,所以这句等价于:++i,++i,++i,j=i+i+i;
经过三次自增后i的值为6,因此最后结果为j=6+6+6=18
奚未央甫冠
2020-05-10 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:677万
展开全部
18,
编译器计算
++i
+
++i
+
++i
的过程是:
++
的优先级比
+
高,所以先把所有的
++i
全部计算过,然后由于
i
的地址都是同一个
i
,而现在所有的
i
都已经是
6
,所以结果是
18,具体的结果还得看编译器优化的方式是怎么样的,有可能其他的编译器计算出来的结果不是这个值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式