运算符的分类
1.1.按运算所需的对象(操作数)分为:
单目运算符(一元运算符),操作数为一个
双目运算符(二元运算符),操作数为两个
三目运算符(三元运算符),操作数为三个
1.2.按运算符的性质分为(一共10种):
算术运算符,条件运算符,关系运算符,逻辑运算符,赋值运算符,自加1自减1运算符,位运算符,强制类型转换运算符,sizeof运算符,逗号运算符。
接下来也主要会通过这种分类方法对运算符展开详述。
2.运算符的优先级和结合性
2.1.优先级
c语言表达式是运算符、常量、变量的任意组合,(expression,简写为exp),。当一个表达式中出现不同类型的运算符时,首先按照优先级从高到低进行计算,先计算高优先级的运算符,再计算优先级低的运算符。
优先级顺序:
括号>单目>乘除求余 >加减>左移右移>大于小于、大于等于、小于等于>等于不等于>按位与>按位异或>按位或>逻辑与>逻辑或>条件运算符(三目运算符)>赋值运算符>逗号运算符
最高级包括:()、[]、->、.、++(后缀)、--(后缀)
2.2.结合性
当两种运算符的优先级一致,则按照运算符的结合性确定运算顺序。结合性分为两种:右结合、左结合
2.2.1.右结合
按照从右到左的顺序计算,包含单目运算符、三目运算符(即条件运算符?:)、赋值运算符
其中单目运算符(第二级)包括:
- 求负
++a、--a 前缀自加自减运算符
! 逻辑非运算符
~ 按位取反
& 取地址符
sizeof 计算字节数运算符
(数据类型标识符)强制类型转换运算符
2.2.2.左结合
按照从左到右的顺序计算,除右结合性的运算符之外其他都是左结合
3.算术运算符(6种)
运算符 |
含义 |
类型 |
优先级 |
结合性 |
- |
求负 |
单 |
2 |
右 |
* |
乘法 |
双 |
3 |
左 |
/ |
除 |
双 |
3 |
左 |
% |
取余 |
双 |
3 |
左 |