c语言中a=a---b怎么算?

 我来答
种烧饼的怪叔叔
2014-02-23 · TA获得超过2214个赞
知道小有建树答主
回答量:824
采纳率:65%
帮助的人:449万
展开全部
不会又是二级C的题目吧,不得不说那本书写这种题目可以不要看了。
1)题目的本意是,C的编译遵循一种叫贪心读法,也就是说,对于有歧义的符号,编译器会一直读取,直到他的意思完结。如本题,到底是a-- -b还是a- --b,根据贪心法则,从左到右右,读到第二个减号,意思完结,所以是a-- -b
2)为什么我说着题有问题,因为,即使是a=a-- -b的意思明确了,这个也是一个未定义的行为,也就是说,他的结果是不确定的!a--并不确保返回a的值,到底是先减一再减b还是先完成运算再自减,都是有可能的。如果还有疑问,可自行百度,C 未定义行为。可以说这是一种非常错误的题目。
White_MouseYBZ
2014-02-23 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6612万
展开全部
等效于
a=a-b;
a=a-1;
注意:把a---b解释为(a--)-b不是优先级确定的,而是结合性确定的——这就是不能解释为a-(--b)的原因。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友80a6dea
2014-02-23
知道答主
回答量:26
采纳率:0%
帮助的人:19.7万
展开全部
你好,很高兴为你解答。
考点:运算符的优先级。
先计算a--,再-b。
把结果复制给a。
也就是a=(a-1)-b。
望采纳~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-23
展开全部
根据优先级,先进行前置--操作,再进行-操作最后到赋值操作,建议背熟课本后面的优先级附录
更多追问追答
追问
那如果a=4,b=2,那最后a的值是2吗?
追答
按这哥们儿说的不应该是1吗。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-23
展开全部
a-b赋值给a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式