在C语言中如果i=5则p=(++i)+(++i)+(++i)等于多少

main(){inti=5,p;p=(++i)+(++i)+(++i);printf(%d,%d",p,i);getch();/*在WIN-TC中运行*/}上机运行正确答... main()
{
int i=5,p;
p=(++i)+(++i)+(++i);
printf(%d,%d",p,i);
getch(); /*在WIN-TC中运行*/
}
上机运行
正确答案为24,8
展开
 我来答
滕六8
2008-10-09 · TA获得超过104个赞
知道答主
回答量:52
采纳率:0%
帮助的人:0
展开全部
++i是先把i+1赋值给i,然后作为表达式的值;
i++是先把i作为表达式的值然后再给i+1运算;
所以结果应该是p=21,i=8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
君不染尘埃
2008-10-09 · TA获得超过152个赞
知道小有建树答主
回答量:663
采纳率:0%
帮助的人:194万
展开全部
p=8+8+8=24
i=8
先算括号里面的,再算外面的。i自增3次后再算p=i+i+i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
舒拔博士
2008-10-09 · TA获得超过306个赞
知道小有建树答主
回答量:302
采纳率:0%
帮助的人:0
展开全部
这种问题没有标准答案,不同的编译器会有不同的实现(比如在我的机器上运行结果为22,8),自己写代码的时候避免这么写就行了,没有实际意义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
elfswallow
2008-10-09 · TA获得超过591个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:268万
展开全部
确实会因为编译器的不同结果不同,许多国外经典C语言书都曾提到这个问题,编译器使用的文法不同,结果就会不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
森の白骨cb1
2008-10-09 · 超过19用户采纳过TA的回答
知道答主
回答量:84
采纳率:0%
帮助的人:46.4万
展开全部
p=6+7+8=21
i=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式