C语言中算术运算符和赋值运算符哪个优先级高?

如题所述

算术运算符高! 表达式优先级()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)↑最高!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址) │*(指针所指内容) type(函数说明) sizeof(长度计算) │*(乘) /(除) %(取模) │+(加) -(减) │<<(位左移) >>(位右移) │<(小于) <=(小于等于) >(大于) >=(大于等于) │==(等于) !=(不等于) │&(位与) │^(位异或) │|(位或) │&&(逻辑与) │||(逻辑或) │?:(?表达式) │= += -=(联合操作) │,(逗号运算符) │最低 1. .的优先级高于*。->操作符用于消除这个问题。 *p.f变成了*(p.f)而不是(*p).f2. []高于*,于是int *ap[]中的ap变成了元素为int指针的数组。3. 函数()高于*,因此,int *fp()不再是函数指针了,而是一个函数,返回int *。4. 逗号运算符在所有运算符中优先级最低,所以,i = 1, 2就成了(i = 1), 2而不是i = (1, 2)。 逗号运算符的值是最右边操作数的值,逗号运算符结合性从左至右,因此又称为顺序求值运算符。5. 在表达式中如果有布尔操作、算术运算、位操作等混合计算,始终应该在适当的地方加上括号。 x = f() + g() * h(); 乘法先于加法执行,但是g()和h()的调用可能以任何顺序出现。同样,f()可能在乘法之前调用,也可能在乘法之后调用。 优先级和结合性规则告诉你哪些符号组成一个意群,大部分这样的意群内部如何进行计算的次序是未定义的。有些操作符,如&&和||等,其操作数的计算顺序是确定的,它们使用短路原则。 C语言中记住两个优先级就够了:乘法和除法先于加法和减法,在涉及其他操作符时一律加上括号。结合性用于在几个操作符具有相同的优先级时确定先执行哪一个。每个操作符拥有某一级别的优先级,同时也拥有左结合性或者右结合性。 所有的赋值符(包括复合赋值符)都具有右结合性(从右到左执行),因此可以使用连等的赋值形式。唯一的三目运算符?:也是具有右结合性的。 所有优先级相同的操作符,它们的结合性也相同,这是必须如此的。在函数调用中,各个参数的计算顺序是不确定的
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-12
附录C C语言运算符优先级和结合性
优先级 运算符 含义 运算类型 结合性
1 ( )
[ ]
->
, 圆括号
下标运算符
指向结构体成员运算符
结构体成员运算符 单目 自左向右
2 !
~
++ --
(类型关键字)
+ -
*
&
sizeof 逻辑非运算符
按位取反运算符
自增、自尖运算符
强制类型转换
正、负号运算符
指针运算符
地址运算符
长度运算符 单目 自右向左
3 * / % 乘、除、求余运算符 双目 自左向右
4 + - 加、减运算符 双目 自左向右
5 <<
>> 左移运算符
右移运算符 双目 自左向右
6 < <= > >= 小于、大于、小于等于、大于等于 关系 自左向右
7 = = != 等于、不等于 关系 自左向右
8 & 按位与运算符 位运算 自左向右
9 ^ 按位异或运算符 位运算 自左向右
10 | 按位或运算符 位运算 自左向右
11 && 逻辑与运算符 位运算 自左向右
12 || 逻辑或运算符 位运算 自左向右
13 ? : 条件运算符 三目 自右向左
14 = += -= *=
/= %= << = >>= &= ^= |= 赋值运算符 双目 自右向左
15 , 逗号运算 顺序 自左向右本回答被网友采纳

C语言中算术运算符和赋值运算符哪个优先级高?
算术运算符高! 表达式优先级()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)↑最高!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址) │*(指针所指内容) type(函数说明) sizeof(长度计算) │*(乘) \/(除) %(取模) │+(加) -(减) │<<(位左移) >>...

c语言运算符优先级怎么排的?
C语言运算符优先级,从高到低依次如下:优先级速记:算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符。逻辑运算符中“逻辑非 !”除外。如果不记得优先级了,使用()来确定执行顺序。有()先算()里面的。

C语言中算术运算符的优先级是高于还是低于赋值运算符?
关系运算符优先级高于赋值运算符!正确

C语言中的运算符的优先级怎么排序?
选C.、赋值运算符<逻辑与运算符<关系运算符<算术运算符。归纳各类运算符【高到低】:初等运算符【()、->、.】 G1 单目运算符G2 算术运算符(先乘除【取余】,后加减) G3,4 位运算符【<< >>】 G5 关系运算符G6,7 位运算符【递减& ^ |】 G8,9,10 逻辑运算符(不包括!) G11,12...

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

c语言运算符优先级顺序
在C语言中,运算符的优先级决定了表达式中运算的顺序。高优先级的运算会优先进行。例如,乘法和除法具有比加法和减法更高的优先级,这意味着在没有括号的情况下,乘法和除法运算会首先执行。同样地,关系运算符的优先级低于算术运算符,而赋值运算符的优先级相对较低。理解这些规则对于编写正确的表达式和...

C语言的运算符的优先级:逻辑运算符、条件运算符、赋值运算符、关系运...
逻辑与&&优先级大于逻辑或||。8、第八级:? :也称为条件运算符号,是C语言中唯一的一个三目运算符,结合顺序是从右往左。9、第九级:=、+=、-+、*=、\/=、%= 这些运算符也叫做赋值运算符,除此之外,>>=、<<=、&=、^=、|=这些赋值运算符也在这一级别内,结合顺序是从右往左。&...

c语言中运算符的优先级高低?
算术运算符(+ - * \/ %)大于 关系运算符(> >= < <= !=(不等于) ==(等于))大于 逻辑运算符(!(非) &&(与) || (或))大于 赋值运算符(= += *= \/= -=)

关系运算符 算数运算符 赋值运算符 优先级 排个顺序!
等于、大于等于、不等于。其中,关系运算符【< > <= >= 】属于优先级第六级,等于运算符【==】、不等于运算符【!=】属于优先级第七级。赋值运算符【= += -= *= \/= %= >>= <<.= &= |= ^=】属于优先级第第十四级。所以,优先级排序为:算术运算符高于关系运算符高于赋值运算。

C语言运算符优先级--超级详细大全
在位运算符的优先级方面,它们相对分散。需要注意的是,赋值运算符、条件运算符和单目运算符这三类运算符的平级运算符的结合顺序是从右至左,其他运算符的结合顺序是从左至右。总结一下,C语言运算符的优先级顺序为:括号运算符、数组下标运算符、成员访问运算符、成员访问运算符、单目运算符、算术运算符...

相似回答