int a=5,b;b=(++a)*(--a);结果为什么是25? int a=5,b;b=(a++)*(--a);为什么又是16?

急用!晚上要!谢谢!... 急用!
晚上要!
谢谢!
展开
 我来答
9162449
2011-03-25 · 超过18用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:61.7万
展开全部
++,--,的运算优先级都比*高~~
相当于 ++a,a是6,然后--a,a是5,然后a*a,是25

注意~先算++a还是先算--a是不确定的~~取决于编译器~~但是这个式子结果是25确定无疑
匿名用户
2011-03-25
展开全部
++a --a 都是先于*运算的,所以a先加1,再减1,然后乘,等于没加没减的乘。
即:a = a+1; a = a-1; b = a*a;
a++ 是后于*运算的,所以a先减1,乘,然后a再加1,即:a = a-1; b = a*a; a = a+1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式