C语言int i=5;j=i+++i+++i++;j=?是怎么算的呀?

 我来答
百度网友e43033c
2013-11-25 · TA获得超过1130个赞
知道小有建树答主
回答量:933
采纳率:100%
帮助的人:937万
展开全部

这个问题还真不好确定答案,跟编译器有关,我没有试多个不同的c编译器,不过试了在c和java 的不同情况,如下:

用c,输出结果为15。则执行过程应该是相当于:

  1. j = (i++)+(i++)+(i++),因为是后缀加,所以都是执行完表达式之后完成自增

  2. 语句执行完成后,j为15,i 三次自增,为8

用java,输出结果为18,则执行过程应该是相当于:

   1. j = 5 + 6 + 7. 就是指 i 第一次是5,但是在第二个i++时,作为表达式运算加法时初始值已经为6,而对于第三个,则初始值为7。

  2.  执行完后,i也是8

lincyze
2013-11-25 · TA获得超过136个赞
知道小有建树答主
回答量:54
采纳率:0%
帮助的人:30.8万
展开全部
哪个程序员要是写出这种代码,公司会直接将其开除。这东西不同编译器可能有不同的解释。学语言尤其是菜鸟,千万不要在这种毫无意义的代码上钻牛角尖。实际代码中你一辈子也见不到类似代码。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zf243966603
2013-11-25
知道答主
回答量:6
采纳率:0%
帮助的人:5565
展开全部
这个跟编译器有关 j=(i++)+ (i++) + (i++) ;
结果是 j=15
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gujianwei2010
2013-11-25
知道答主
回答量:15
采纳率:0%
帮助的人:2.6万
展开全部
j =( i++)+(i++)+(i++).
j=18
i=8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式