c语言的自增自减运算符的题,求思考过程

#include"stdio.h"voidmain(){inti=5,j=5,p,q;p=(i++)+(i++)+(i++);q=(j++)+(j++)+(j++);pr... #include "stdio.h"

void main()
{
int i = 5, j = 5, p, q;
p=(i++)+(i++)+(i++);
q=(j++)+(j++)+(j++);
printf("%d,%d,%d,%d",p,q,i,j);
}

我口算结果和电脑的完全不一样,求大家帮我解释一下吧!!谢谢了
展开
 我来答
wwwmajin
推荐于2017-11-24 · TA获得超过206个赞
知道答主
回答量:241
采纳率:0%
帮助的人:155万
展开全部
i++是先使用i的值,再对i进行加1操作.
所以在p=(i++)+(i++)+(i++)里面在计算p的值之前,i本身的值总是5.
所以p的值就是3个5所以是15.在运算完p之后,因为有3个i++,所以i做了3次自加运算,所以i最终是8.
q的变化同理.
所以最终打印结果是 15,15,8,8
bluelocust
2012-02-05 · 超过15用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:27万
展开全部
你的问题我觉得涉及到对自增运算符的理解,++i意味着“立即自增i”,而i++则意味着“现在先用i的原值,稍后再自增i”,这个稍后应该理解为是在下一条语句执行前i将进行自增。
所以结果是15,15,8,8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
行程21公里
2012-02-01 · 超过11用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:40.1万
展开全部
++i i自增1后再参与其它运算。
--i i自减1后再参与其它运算。
i++ i参与运算后,i的值再自增1。
i-- i参与运算后,i的值再自减1。
结果很明显15,15,8,8
希望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seamaswong
2012-02-01 · TA获得超过1122个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:372万
展开全部
这个没有标准答案,在一个语句中,一个变量有多次自增自减并且用于赋值或比较,在不同编译器下工作是不同的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
靓丽还清湛的标兵5177
2012-02-01 · TA获得超过1649个赞
知道小有建树答主
回答量:1032
采纳率:100%
帮助的人:974万
展开全部
在不同的编译器中可能有不同的处理行为,在发VC7中
p=(i++)+(i++)+(i++); 等效于 p = i + i + i; i++, i++, i++;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式