C语言里,int a=5,b;b=++a*--a;求a。

要在VC里运行的,答案是25啊,我想知道为什么啊?... 要在VC里运行的,答案是25啊,我想知道为什么啊? 展开
 我来答
地摊秀子
2011-03-20 · TA获得超过108个赞
知道答主
回答量:51
采纳率:0%
帮助的人:28.3万
展开全部
正确答案为 25,++ 和--的运算级比*的 要高,所以先运算++a和--a
然后再 相乘;++ --是二级运算符,*是三级运算符 ,所以 先++a 为6,a现在为6;接着--a,a现在为5;接着相乘 就是5*5 所以答案为 25. 不相信 可以是程序
#include<stdio.h>
main()
{ int a=5,b;
b=++a*--a;
printf("%d",b);

}
更多追问追答
追问
“先++a 为6,a现在为6;接着--a,a现在为5;接着相乘  就是5*5 ”
为什么不是6*5啊?
追答
因为a 先开始为六 
在六的基础上 --a 就为5了 所以a就为5 因为 a只有一个 所以a当前值就是5;他们两用的是一个a比如 你 定义了一个空间 这个空间 只能放一个数,先开始 空间里的数加一 ,接着你又让空间里的数减一,空间里的数 又变回去了 然后 你在用空间里的数 做算术,答案不就是a*a了 是 先把a的运算做完,在做算术运算 也就是a++完直接 做--a 这样同一个a 好好想想就明白了
百度网友a39fb3e
推荐于2016-11-25 · TA获得超过4465个赞
知道小有建树答主
回答量:477
采纳率:100%
帮助的人:65.9万
展开全部
整型变量a的值为5。
计算过程:
a初值为5,经++a运算后值为6,接着--a,值自减1得5,即a=5,随后a*a得25并赋值于b,所以b=25。
所以,a的值为5。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-20
展开全部
++a是先自增 ++a a=6 --a a=5 最后a=5 b=25
更多追问追答
追问
++a不就是6嘛,--a不就是5,++a*--a是不是=(++a)*(--a),不就是6*5了啊?
追答
++运算符优先级高于*所以 ++a  a=6    --a  a=5   a最后的值就是5              就变成5*5啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
悟俊侠0G0
2011-03-20
知道答主
回答量:49
采纳率:0%
帮助的人:6.3万
展开全部
a=5,b=25
先做(++a),a为6.然后(--a),a为5,然后相乘,得b为25
追问
答案是25,不过5*6=30啊.还有啊,这是要在VC上运行的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yijian5763326
2011-03-20
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
b=30
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式