C语言中条件运算符与逻辑或和与,哪个优先级更高

如题所述

OperatorsAssociativity

()[]->.lefttoright

!~++--+-*(type)sizeofrighttoleft

*/%lefttoright

+-lefttoright

<<>>lefttoright

<<=>>=lefttoright

==!=lefttoright

&lefttoright

^lefttoright

|lefttoright

&&lefttoright

||lefttoright

?:righttoleft

=+=-=*=/=%=&=^=|=<<=>>=righttoleft

,lefttoright

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。

具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而->及.是取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

移位运算符紧随其后。

其次的关系运算符中,<<=>>=要比==!=高一个级别,不大好理解。

所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)

逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。

跟在其后的&&比||高。

接下来的是条件运算符,赋值运算符及逗号运算符。

在C语言中,只有4个运算符规定了运算方向,它们是&&、||、条件运算符及赋值运算符。

&&、||都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如a=0&&b;&&运算符的左边位0,则右边表达式b就不再判断。

在条件运算符中。如a?b:c;先判断a的值,再根据a的值对b或c之中的一个进行求值。

赋值表达式则规定先对右边的表达式求值,因此使a=b=c=6;成为可能。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-03-14
运算符
按位与 (&)优先级 8, 用于: 表达式 & 表达式
逻辑与 (&&) 优先级 11, 用于: 表达式 && 表达式
逻辑或 ( || ) 优先级 12, 用于: 表达式 || 表达式
条件运算符 (?:) 优先级 13, 用于三目运算: 表达式1? 表达式2: 表达式3
优先级 8 高于 11, 高于 12, 高于 13。本回答被提问者和网友采纳
第2个回答  2015-03-14
好像是与吧

C语言中条件运算符与逻辑或和与,哪个优先级更高
所有的逻辑操作符都具有不同的优先级(单目运算符出外,!和~)逻辑位操作符的"与"比"或"高,而"异或"则在它们之间。跟在其后的&&比||高。接下来的是条件运算符,赋值运算符及逗号运算符。在C语言中,只有4个运算符规定了运算方向,它们是&&、||、条件运算符及赋值运算符。&&、||都是先计算...

c语言中“与”和“或”的优先级是什么
C语言中,“与”和“或”的优先级遵循特定的规则。具体来说,优先级顺序为:&>^>|>&&>||。这意味着在表达式中,逻辑与(&)运算符具有最高的优先级,其次是异或(^),然后是逻辑或(|),再之后是逻辑与与(&&),最后是逻辑或或(||)。在C语言中,运算符的优先级和算术运算符的优先级一...

C语言中运算符优先级排序
逻辑与和或运算符位于第八和第九级,条件运算符紧跟其后。接下来是赋值运算符,最后是逗号运算符,优先级最低。C语言中的运算符优先级并不依赖于求值顺序,例如表达式"a+b && b*c",尽管乘法运算符优先级最高,但执行顺序是从左到右。优先级从上至下递减,最上面的优先级最高,而最低优先级的是...

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

c语言中,逻辑运算符'或'和'与'那个运算级别高一点,为什么?
“与”级别大于“或”级别,实在不清楚的话就用括号,代码清晰且不易出错

c语言优先级是什么?
c语言优先级是:每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。第七级:&&、||逻辑与&&优先级大于逻辑或||。第八级:?:也称为条件运算符号,是C语言中唯一的一个三目运算...

c语言运算符优先级顺序表
C语言中,运算符的优先级可以分为不同级别,具体优先级顺序如下:最高优先级:单目运算符(如取反、乘方等)、赋值运算符(=、+=、-=、*=等)、逻辑非运算符(!)、关系运算符(<、<=、>、>=等)、相等运算符(==、!=等)、按位与运算符(&)、按位异或运算符(^)、按位或运算符(|...

求c语言中关系运算符,逻辑运算符等等各种运算符的优先级!
c语言运算符号优先级如下:1级优先级:左结合运算符(圆括号()、下标运算符[]、结构体成员运算符->、类型转换运算符(类型)、指针运算符*、地址与运算符&、sizeof长度运算符)2级优先级:结构体成员运算符(右结合)3级优先级:左结合运算符(逻辑非运算符!、按位取反运算符~、自增运算符++、...

C语言中算数运算符,关系运算符,逻辑运算符的优先级别
==等于运算符;!=不等于运算符。8级优先级(左结合)&按位与运算符。9级优先级(左结合)^按位异或运算符。10级优先级(左结合)|按位或运算符。11级优先级(左结合)&&逻辑与运算符。12级优先级(左结合)||逻辑或运算符。13级优先级(右结合)? :条件运算符。14级优先级(右结合)=、 +...

c语言中运算符优先级排序
C语言中运算符优先级排序:1. 后缀运算符:包括圆括号、方括号和大括号,具有最高优先级。2. 一元运算符:如自增、自减、逻辑非。3. 算术运算符:包括乘、除、模、加、减,优先级从高到低。4. 关系运算符:如大于、小于、大于等于、小于等于。5. 位运算符:如移位运算符。6. 逻辑运算符:如...

相似回答