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

294 阅读1分钟

说明

根据运算符所带的操作数的数量进行划分,C语言的运算符有三种类别:

单目运算符:只带一个操作数的运算符。如:++运算符。

双目运算符:带两个操作数的运算符。如:+、-、*、/、%运算符。

三目运算符:带三个操作数的运算符。如:?:运算符。

一般是,单目运算符的优先级高于双目运算符,双目运算符的优先级高于三目运算符。

上表格

优先级运算符含义运算类型结合性
1( )圆括号、函数参数表单目运算符自左向右
[ ]数组元素下标双目运算符
->指向结构体成员
.引用结构体成员
2!逻辑非单目运算符自右向左
~按位取反
++  - -自增  自减
-求负
*指针间接引用运算符
&取地址运算符
(类型表示符)强制类型转换运算符
sizeof取占内存大小运算符
3* / %乘、除、整数求余双目算术运算符自左向右
4+ -加、减
5<< >>左移、右移双目位运算符
6< <=小于、小于等于双目关系运算符
> >=大于、大于等于
7== !=等于、不等于
8&按位与双目位运算符
9按位异或
10|按位或
11&&逻辑与双目逻辑运算符
12||逻辑或
13?:条件运算符三目运算符自右向左
14=赋值运算符双目运算符
+=  -=  *=  /=  %=复合赋值运算符
&=  ^=  |=
<<=  >>=
15,逗号运算符顺序求值运算自左向右