C语言上的问题 !(a+b)+c-1&&b+c/2的值 a=3,b=4,c=5

C语言上的问题 !(a+b)+c-1&&b+c/2的值 a=3,b=4,c=5
请问是不是等价于(!(a+b)+c-1)&&(b+c/2)
这几个运算符的运算优先级到底是怎么规定的

第1个回答  2015-01-20
优先级关系可以简单地记为:
! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

所以是等价于(!(a+b)+c-1)&&(b+c/2)
第2个回答  2015-01-20
不用死记硬背,有几个规律记下来就行了。
1、()优先级最高
2、然后是++ -- * & !这些
3、然后是* / + -这些
4、然后是比较运算符
5、然后是逻辑运算符
6、最后是赋值运算符

上面的!(a+b)+c-1&&b+c/2
先计算()、!和/
就是(!(a+b))+c-1&&b+(c/2)

然后再计算+ -这些
就是((!(a+b))+c-1)&&(b+(c/2))

最后再计算&&就可以了,楼主的理解没有错误。本回答被网友采纳
第3个回答  2015-01-20
你不知道你说的什么。首先“与”,“或”,“非”这样的运算符优先级是最低的,其次是加减,然后乘除,然后括号。你第一个式子本来应该是!((a+b)+c-1)&&b+c/2一种表达形式才符合语法,不知道你写的式子是表示什么。a+b=7,他们的非又表示什么?然后+c-1,这都不符合语法。
第4个回答  2015-01-20
是等价的,优先级一百度都出来了