|
C语言具有丰富的运算符和表达式,运算符具有不同的优先级和结合性。因此,在表达式求值时,既要考虑运算符优先级,又要注意运算符的结合性。
|
|
|
|
(1)算术运算符。算术运算符包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)和自减(--)7种。
|
|
|
(2)关系运算符。关系运算符包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)6种。
|
|
|
(3)逻辑运算符。逻辑运算符包括与(&&)、或(‖)、非(!)3种。
|
|
|
(4)位操作运算符。位运算符包括按位与(&)、按位或(|)、按位非(~)、按位异或(^)、左移(<<)、右移(>>)6种。
|
|
|
(5)赋值运算符。赋值运算分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共11种。
|
|
|
|
|
(8)指针运算符。指针运算符包括取内容(*)和取地址(&)两种运算。
|
|
|
(9)求字节数运算符。求字节数运算符用于计算数据类型所占的字节数(sizeof)。
|
|
|
(10)特殊运算符。特殊运算符有括号()、下标[]、成员(→,.)等几种。
|
|
|
在C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个操作数两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。
|
|
|
|
|
|