C++简单运算,请解释一下

inta=2,b=3,c=4;b+=--a+b++–--c;cout<<"a="<<a<<"b="<<b<<"c="<<c<<endl;尽量详细点,谢谢啦!!答案是:a=... int a = 2, b = 3, c = 4;
b += --a + b++ – --c;
cout << "a = " << a << " b = " << b << " c = " << c << endl;

尽量详细点,谢谢啦!!
答案是: a = 1 b = 5 c = 3
能不能解释一下这步 b++ – --c;
展开
 我来答
柠檬的花生豆
2011-02-01 · 超过10用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:28.8万
展开全部
- - a =1;a=1; b + + = 3;b=4; (- - a) + (b + + ) = 4; - - c = 3;c=3;
(- - a) + (b + + ) | - - c = 1; (b + = 1) => (b = b + 1=5)
所以答案是a=1 b=5 c=3
你刚问的这个是或符号,非零就等于1,例如3|4=1,你的提问 有点错误,
--a + b++ – --c 是个整体,四则运算符的优先级最高,|应该排在其后,不明白的可以再提问,谢谢
百度网友c3cd0cf97e
2011-02-01 · 超过25用户采纳过TA的回答
知道答主
回答量:132
采纳率:0%
帮助的人:66.8万
展开全部
--C 前置的--,立马就改变C的值,是1
b++ 后置的++,在这个算式中b的值还是3 没有变,等号后面运算完后b才会变成4
--C 前置的--,立马就改变C的值,是3
所以变成了
b+=1+3-3 这里的b已经变成4了
也就是 b=4;b+=1;所以b是5

这里要注意的就是前置++ -- 和后置++ --的区别,你可以再试试b++换成(++b) 最后结果就是6了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sun_siliang
2011-01-31 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4595万
展开全部
b += --a + b++-(--c);//加括号才能在VC++ 2005中编译

b=b+--a+b++-(--c)
=3+1+3-3
=4
上式中有--a,b++,--c,因此执行后a=1,b=5,c=3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3b72985
2011-01-31 · 超过14用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:17.9万
展开全部
重要的是你要理解运算符的优先级:自增运算符>加减运算符
所以程序执行过程是这样:先a自减1 此时a==1;然后b自加1 此时b==4,c自减1 此时c==3,
最后b+=1+4-3,这个过程中最左边的b==3,当这个过程执行完后b=3+(1+4-3)=5;
很详细了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c0f4177
2011-01-31 · 超过11用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:0
展开全部
a=2==>- - a =1;
b=3==> b + + = 4
c=4==>- - c = 3;
b=3(b)+1(- - a)+4( b + +)-3(- - c )=5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式