介绍下一个C语言运算顺序

来源:百度知道 编辑:UC知道 时间:2024/05/22 13:51:13
a=5;b=20;
c=a+++--b;
运算符号太多 自己无法确定是如何计算的 请说明计算顺序 以及运行后abc的值

顺序:
--b
c=a+b
a++

运行后:
a=6
b=19
c=24

根据优先级和结合性
++ -- 的优先级最高,并且是左结合的 所以原表达式可以写成
c=[(a++)+(--b)] 这样看的清楚了吧?
而a++ 这里的++在后,因此整个表达式的值是 a自增前的值 也就是5 然后a再自增1变成6
而--b 这里的--在前,因此整个表达式的值是 b自减后的值,也就是19 b自减变成19
然后是两个表达式的值加相 即 5+19=24 再将所得的值 24赋给c
所以最后 a=6 b=19 c=24

我的建议是,永远不要去做这类运算顺序的题目,凡是复杂运算,一律多用括号.

c =a++ + -b

C语言有一个 规则 就是 分解成最多的操作符Do you understand

不同的机器可能有不同的解法,
c=a+++--b; 可能是c=(a++)+(--b)结果是24
也可能是c=a+(++(--b))结果还是24

先是非!
然后是算术,在算术里有+ - * / %
然后是关系〈,〈=,〉,〉=优先;==,!=后,
然后是|| 和&&
然后是赋值