3-4、运算符和表达式二

69 阅读2分钟

C语言运算符的优先级和结合性

优先级运算符结合性
1() [] -> .从左至右
2! ~ ++ -- *(取内容) &(取地址) +(取正) -(取负) sizeof从右至左
3*(乘) / %从左至右
4+(加) -(减)
5<< >>
6< <= > >=
7== !=
8&(位逻辑与)
9^
10|
11&&
12||
13?:从右至左
14=    +=    -=    *=    /=    %=    &=    ^=    |=    >>=    <<=从右至左
15,从左至右

注:优先级的数字越小,级别越高。

表达式

用运算符和括号将运算对象(常量、变量和函数等)连接起来,符合C语言语法规则的运算式,称为表达式。每个表达式都可以按照运算符的运算规则进行运算,并最终获得一个值,称为表达式的值。

表达式的数据类型即是表达式值是数据类型。表达式的计算结果可能是整型、实型、字符型或逻辑型,由于字符型和逻辑型可以看成整型,所以表达式的基本数据类型实际上只分为整型和实型两在类,这两种类型统称为数值型。

以下的情况都是表达式:
1、单个的常量、变量和函数调用。
2、“单目前缀运算符 表达式”。
3、“表达式 单目后缀运算符”。
4、“表达式 双目运算符 表达式。
5、表达式 ? 表达式 : 表达式。
6、有限次地使用上述规则获得的表达式

按照构成表达式的运算符划分,C语言的表达式可分为算术表达式、关系表达式、逻辑表达式、条件表达式、赋值表达式、位运算表达式和逗号表达式等。

表达式的计算

1、按照运算符的优先级高低次序进行计算,例如先乘除后加减。
2、如果一个运算对象(或称操作数)两侧的运算符优先级相同,则按照C语言规定的结合方向(结合性)进行计算。