运算符的种类、运算优先级、结合性
C语言中的运算符可以归纳下列5类:算术运算符、关系运算符、赋值运算符、逻辑运算符和条件运算符。
1.算术运算符有+、-、*、/、%。分别表示算术加、减、乘、除和取余运算。
这些运算符需要两个运算对象,称双目运算符。除取余(%)运算符外,这些运算符的运算对象可以是整型,也可以是实型数据。取余运算的运算对象只能是整型。取余运算的结果是两数相除后所得的余数。
″+″和″-″也可以用做单目运算符,但作为单目运算符时必须出现在运算量的左边,运算量可为整型,也可以为实型。
C语言中还提供两个特殊的单目运算符:++和--,这两个运算符既可以放在运算对象之前,又可以放在运算对象之后。
在C语言中,凡是按C语言语法规则用常量、变量、函数调用以及运算符把运算数连接起来的式子都是合法的表达式。凡表达式都有一个值,即运算结果。
算术运算符和一对圆括号组成的算术表达式的运算优先级是:
()+-*/%+-
单目
双目
同级
同级
同级
———————————————→
高低
以上所列的运算符中,只有单目运算符″+″和″-″的结合性是从右到左,其余运算符的结合性都是从左到右。
算术表达式的求值规律与数学中的四则运算规律类似,其运算规律和要求为:
①在算术表达式中,可使用多层括号,但左右括号必须配对。运算时从内层圆括号开始,由内向外依次计算表达式的值。
②在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级别由高到低进行,若表达式中运算符的级别相同,则按运算符的结合方向进行。
2.在算术表达式中,C语言提供6种关系运算符:<,>,<=,>=,==,!=。前四种运算符(<,>,<=,>=)的优先级相同,后两种的优先级也相同,并且前四种的优先级高于后两种。
关系运算符属于双目运算符,其结合方向为自左至右。
用关系运算符可以将两个表达式(包括算术表达式、关系表达式、逻辑表达式、赋值表达式和字符表达式)连接起来构成关系表达式。
关系运算结果1或0。在C语言中没有逻辑值,用0代表″假″,用1代表″真″。
3.逻辑运算符C语言提供三种逻辑运算符:(逻辑与)、‖(逻辑或)、!(逻辑非)。其中前两种为双目运算符,第三种是单目运算符。
关系运算符中的和‖运算符的优先级相同,!运算符的优先级高于前两个。
算术运算符、逻辑运算符和关系运算符三者间的优先级关系为:
!→算术运算符→关系运算符→‖
————————————————→
高低
用逻辑运算符将关系表达式或任意数据类型(除void外)的数据连接起来就构成了逻辑表达式。逻辑表达式的值是0或1。
4.赋值运算符在C语言中,″=″称为赋值运算符。由赋值运算符组成的表达式称为赋值表达式。表达式的形式为:
变量=表达式
赋值符号左边必须是一个代表某一存储单元的的变量名,赋值号的右边必须是C语言中合法的表达式。
赋值运算的功能是先计算右边表达式的值,然后再把此值赋给赋值号左边的变量,确切地说,是把数据放入以该变量为标识的存储单元中去。
5.条件运算符C语言中把″?:″称作条件运算符。条件运算符要求有三个运算对象,它是C语言中唯一的一个三目运算符。由条件运算符构成的条件表达式的一般形式为:
表达式1?表达式2:表达式3
当表达式1的值为非零时,取表达式2的值为此条件表达式的值;当表达式1的值为零时,取表达式3的值为此条件表达式的值。
条件运算符具有自右向左的结合性,其优先级别比关系运算符和算术运算符都低。
微信搜索"考试吧"了解更多考试资讯、下载备考资料
相关推荐: