逻辑运算符号&&、||、!的 相对优先级是怎样的?

也就是说 a&&b||c应理解成(a&&b)||c还是a&&(b||c),或者怎么理解都可以?请各位C语言大虾们帮帮忙,谢了哈O(∩_∩)O~

运算符运算等级如下
其中 1级优先级最高,15级最低,
1级优先级 左结合
() 圆括号
[] 下标运算符
-> 指向结构体成员运算符
. 结构体成员运算符

2级优先级 右结合
! 逻辑非运算符
~ 按位取反运算符
++ 自增运算符
-- 自减运算符
- 负号运算符
(类型) 类型转换运算符
* 指针运算符
& 地址与运算符
sizeof 长度运算符

3级优先级 左结合
* 乘法运算符
/ 除法运算符
% 取余运算符

4级优先级 左结合
+ 加法运算符
- 减法运算符

5级优先级 左结合
<< 左移运算符
>> 右移运算符

6级优先级 左结合
<、<=、>、>= 关系运算符

7级优先级 左结合
== 等于运算符
!= 不等于运算符

8级优先级 左结合
& 按位与运算符

9级优先级 左结合
^ 按位异或运算符

10级优先级 左结合
| 按位或运算符

11级优先级 左结合
&& 逻辑与运算符

12级优先级 左结合
|| 逻辑或运算符

13级优先级 右结合
? : 条件运算符

14级优先级 右结合
= += -= *= /= %= &= ^= |= <<= >>= 全为赋值运算符

15级优先级 左结合
, 逗号运算符
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-30

运算符运算等级如下

其中 1级优先级最高,15级最低,

1级优先级 左结合

() 圆括号 

[] 下标运算符 

-> 指向结构体成员运算符 

. 结构体成员运算符 

2级优先级 右结合 

! 逻辑非运算符 

~ 按位取反运算符 

++ 自增运算符 

-- 自减运算符 

- 负号运算符 

(类型) 类型转换运算符 

* 指针运算符 

& 地址与运算符 

sizeof 长度运算符 

3级优先级 左结合 

* 乘法运算符 

/ 除法运算符 

% 取余运算符 

4级优先级 左结合

+ 加法运算符 

- 减法运算符 

5级优先级 左结合 

<< 左移运算符 

>> 右移运算符 

6级优先级 左结合 

<、<=、>、>= 关系运算符 

7级优先级 左结合 

== 等于运算符 

!= 不等于运算符 

8级优先级 左结合 

& 按位与运算符 

9级优先级 左结合 

^ 按位异或运算符 

10级优先级 左结合 

| 按位或运算符 

11级优先级 左结合 

&& 逻辑与运算符 

12级优先级 左结合 

|| 逻辑或运算符 

13级优先级 右结合 

? : 条件运算符 

14级优先级 右结合 

= += -= *= /= %= &= ^= |= <<= >>= 全为赋值运算符

15级优先级 左结合 

, 逗号运算符

本回答被网友采纳
第2个回答  2019-11-28
按照运算符的运算等级来看,&&的优先级高于||
应该是理解成(a&&b)||c

逻辑运算符号&&、||、!的 相对优先级是怎样的?
1级优先级 左结合 () 圆括号 [] 下标运算符 -> 指向结构体成员运算符 . 结构体成员运算符 2级优先级 右结合 ! 逻辑非运算符 ~ 按位取反运算符 ++ 自增运算符 -- 自减运算符 - 负号运算符 (类型) 类型转换运算符 指针运算符 & 地址与运算符 sizeof 长度运算符 3级优先级 左结合 乘法...

逻辑运算符号&&、||、!的相对优先级是什么?
1级优先级 左结合 () 圆括号 [] 下标运算符 -> 指向结构体成员运算符 . 结构体成员运算符 2级优先级 右结合 ! 逻辑非运算符 ~ 按位取反运算符 ++ 自增运算符 -- 自减运算符 - 负号运算符 (类型) 类型转换运算符 指针运算符 & 地址与运算符 sizeof 长度运算符 3级优先级 左结合 乘法...

计算机C语言中逻辑运算符“与”“或”“非”优先级是怎样的?
非的优先级最高(它是一个单目操作符)与的优先级次之或的优先级,最低单目操作符的优先级最高。1)&&:当且仅当两个运算量的值都为"真"时,运算结果为"真",否则为"假"。2) || :当且仅当两个运算量的值都为"假"时,运算结果为"假",否则为"真"。3) ! :当运算量的值为"真"...

C语言提供3种逻辑运算符,按优先级高低它们分别是
C语言提供三种逻辑运算符,按优先级高低它们分别是:逻辑非(!),逻辑与(&&)、逻辑或(||)。运算规则:&&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。|| :当且仅当两个运算量的值都为“假”时,运算结果为“"假”,否则为“真”。! :当运算量的值为“真”...

c++中&和|的优先级别是怎样的呢?
&& 的高 优先级【高到低】:第一级:圆括号【()】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】第二级:逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++ --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算...

c语言中运算符的优先顺序是怎样的?
与运算符(&&)和或运算符(||)均为双目运算符。具有左结合性。非运算符(!)为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:本来没有错误,关系运算符都是按“非与或”顺序来运算的。但是,不同的编译器设计者可能对这个的认识不同,因此,如果不加括号就会有歧义,因此...

c语言逻辑运算符 我不明白&&和||到底是怎么运算的
结果为0,否则结果为1。3 优先级:&&的优先级比||高,所以在写在一起时,先计算&& 再计算||。相同符号时,自左向右计算。4 短路原则:对于&&,如果左操作数a为0,那么结果必然为0,右操作数b将不参与计算。对于||,如果左操作数a非0,那么结果必然为1,右操作数b将不参与计算。

java中的逻辑运算符&&,||,!各个怎么用?举个比较好理解例子。_百度知 ...
逻辑运算符 &&、|| 和 !按表 2 进行逻辑运算。逻辑运算符的优先级为:!运算级别最高,&& 运算高于 || 运算。!运算符的优先级高于算术运算符,而 && 和 || 运算则低于关系运算符。结合方向是:逻辑非(单目运算符)具有右结合性,逻辑与和逻辑或(双目运算符)具有左结合性。

C语言逻辑运算符&&和||同时存在时候,不应该先算&&吗?
++的优先级最高,所以先算++x,结果x=1,后面的运算符是||,这就意味着不管||后面的运算结果是什么,最后结果都是1,所以尽管&&的优先级高,但也不用计算了,所以最终结果x=1,y=0,z=0 注意一点:优先级与求值顺序无关!

C语言逻辑运算符和if语句
:当操做数为真时,结果为假,反之也成立,并且它的优先极也最高,因为只有它是单目运算符,&&:只有当两个操做数都为真时,结果才为真,否则为假。||:只有当两个操做数都为假时,结果才为假,否则结果为真。除了这些,逻辑运算符还有几点应注意,!运算符是右结合性,&&和||是左结合性。在...

相似回答