首页 理论教育 C语言程序设计:运算符优先级

C语言程序设计:运算符优先级

时间:2023-10-29 理论教育 版权反馈
【摘要】:在混合运算表达式中,赋值运算的优先级低于算术运算;其结合性为“从右向左”,这同算术运算相反,与大部分单目运算相同。“=”运算符优先级高于“,”运算符。

C语言程序设计:运算符优先级

在一个表达式中可能包含多个由不同运算符连接起来、具有不同数据类型的数据对象。由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现运算错误。因为当表达式中含有多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。

1.较为常用的几个运算符优先级比较如下

(1)基本算术运算符的运算优先级如下:

+(取正)、-(取负)、*、/、%、+、-。

(2)基本运算符的优先级与数学上规定的相同,先乘除后加减,即乘和除的级别比加减高,同级别的一般情况下按自左至右的顺序进行。

(3)自增与自减运算符均为单目运算符,优先级高于一般的双目算术运算符,与求负运算符同级,结合性同大多数单目运算符一样具有右结合性(即“自右向左”)。

(4)自减运算与取负同处一个优先级,结合性为“从右向左”。

例如:

表达式“-i--”等效于“-(i--)”,是一个合法表达式。

(5)在混合运算表达式中,赋值运算的优先级低于算术运算;其结合性为“从右向左”,这同算术运算相反,与大部分单目运算相同。

(6)复合赋值运算具有同简单赋值运算一样的优先级与结合性。复合赋值运算表达式的值即为最终赋给变量的值。(www.xing528.com)

例如:

“a+=3”的值为“a+3”,“x%=3”的值为“x%3”,“x*=y+8”的值为“x*(y+8)”。

(7)“=”运算符优先级高于“,”运算符(事实上,逗号运算符级别最低)。

例如:

“(a=3*5),(a*4)”,表达式计算后值为60(其中a=15)。

2.整合后各运算符优先级比较,如表2-6所示

表2-6 运算符的优先级

(续表2-6)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈