c语言,int i=5; (++i)+(++i)+(++i)=?

 我来答
生活天天向上happy
2019-08-14 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:1020万
展开全部
int
i
=
5;

int
j
=
(++i)+(++i)+(++i);

微软的编译器结果是24,相当于:

int
i=5;

i=i+1;

i=i+1;

i=i+1;

j=i+i+i;

GCC编译器
结果是22,相当于:

i=5;

i=i+1;

i=i+1;

j=i+i;

i=i+1;

j=j+i;

其他编译器没试过
不过一般不会是21,
原因与编译原理有一定关系,如果你懂点汇编语言的话,你把生成的程序反汇编看看就知道怎么回事了
帕剌斯
2024-10-29 广告
德国Palas 成立于1983年,总部位于德国巴登符腾堡州的卡尔斯鲁厄。作为气溶胶技术专家, Palas 致力于为用户提供气溶胶颗粒物的产生、处理、测量与分析解决方案,是该领域内全球先进的开发商和制造商。基于自身技术的独特优势,Palas ... 点击进入详情页
本回答由帕剌斯提供
国产家电修理工happy
2020-03-04 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:26%
帮助的人:1013万
展开全部
结果是24。

运算过程由于++i是先自加后参加运算,因此i进行了三次自加后再由三个i相加而来,本题可以看成下面的样子:

1、++i=5+1=6

2、++i=6+1=7

3、++i=7+1=8

4、i+i+i=8+8+8=24
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
麦芽糖糖haha
2019-08-20 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:757万
展开全部
在式子p=(
i)
(
i)
(
i);中,三个括号的优先级相同,系统同时计算三个括号中的数。第一个括号结果为6,第二个括号结果为7,第三个括号结果为8。又因为三个括号表示的变量形式相同,系统只分配一个存储空间,怎么存储呢,其结果就是将三个括号中的数都更新为8,所以最终输出结果为24,而不是21。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式