1 、标识符、常量、字符串和用()括号套起来的表达式是组成表达式的最基本单元,在运算中做 操作数,优先级最高。
2、后缀运算符,包括数组取下标[]、函数调用()、结构体取成员.、指向结构体的指针取成员- >、后缀自增++、后缀自减--。如果一个操作数后面有多个后缀,按照离操作数从近到远的顺序 (也就是从左到右)依次运算,比如a.name++,先算a.name,再++,这里的.name应该看成a的 一个后缀,而不是把. 看成双目运算符。
3、单目运算符,包括前缀自增++、前缀自减--、 sizeof、类型转换()、取地址运算&、指针间接 寻址*、正号+、负号-、按位取反~、逻辑非! 。如果一个操作数前面有多个前缀,按照离操作数 从近到远的顺序(也就是从右到左)依次运算,比如!~a,先算~a,再求!。
4、乘*、除/、模%运算符。这三个运算符是左结合的。 5、加+、减-运算符。左结合。
6、移位运算符<<和>>。左结合。
7、关系运算符<><= >=。左结合。
8、相等性运算符==和!=。左结合。
9、按位与&。左结合。
10、按位异或^。左结合。
11 、按位或|。左结合。
12、逻辑与&&。左结合。
13、逻辑或||。左结合。
14、条件运算符:?。在第 2 节 “if/else语句”讲过Dangling-else问题,条件运算符也有类似的问 题。例如a ? b : c ? d : e是看成(a ? b : c) ? d : e还是a ? b : (c ? d : e) ? C语言规 定是后者。
15、赋值=和各种复合赋值(*= /= %= += -= <<= >>= &= ^= |=)。右结合。
16、逗号运算符。左结合。
34种运算符:
01、圆括号()
02、下标[]
03、指针型结构成员->
04、结构成员.
05、逻辑非!
06、位非~
07、自增++
08、自减--
09、取负-
10、类型转换(类型)
11、取内容*
12、取地址&
13、求字节sizeof
14、乘*
15、除/
16、求余%
17、加+
18、减-
19、左移<<
20、右移>>
21、小于<
22、小于等于<=
23、大于>
24、大于等于>=
25、等于==
26、不等于!=
27、位与&
28、位异或^
29、位或|
30、&&与
31、或||
32、条件运算?:
33、赋值运算=
34、逗号运算,
扩展资料
9种控制语句
1、if()~else条件语句
2、for()~循环语句
3、while()~循环语句
4、do~while()循环语句
5、continue结束本次循环语句
6、break中止执行switch或循环语句
7、switch多分支选择语句
8、goto转向语句
9、return从函数返回语句