导读
什么是运算符?运算符有什么用?有哪些运算符?🤔🤔🤔
目录
正文
-
表达式
- 定义:由操作数和运算符组成
- 注:操作数可以是变量也可以是常量
-
运算符
- 定义:表示某种运算功能的符号
- 分类:①单目运算符②双目运算符③三目运算符
- 优先级:运算的先后顺序
- 结合性:优先级相同时运算方向
- 注①单目,赋值,条件为右结合②单目高于双目高于三目高于赋值③双目中算数大于移位大于关系大于位逻辑大于逻辑
-
算术运算符
- 包括:①加(+)②减(-)③乘(*)④除(/)⑤求余(%)
- 结果:求余答案的正负与前者相同
- 优先级:③④⑤大于①②
- 结合性:从左至右
-
注:1/2=0(一除以二为零点五,但是1和2都为整型,故答案也应为整型,即零)1.0/2=0.5(1.0为double型,2为int型,两者类型不同,答案为所占字节数大的,即double行,故答案为0.5)
-
关系
-
包括:①大于(>)②小于(<)③等于(==)④大于等于(>=)⑤小于等于(<=)⑥不等于(!=)
- 结果:成立为1,不成立为0
- 优先级:①②④⑤大于③⑥
- 结合性:从左至右
-
逻辑
- 包括①与(&&)②或(||)③否定(!)
- 结果:两者均正与为一其余皆为零,两者均零或为零其余皆为一,正否定为零,零否定为一
- 优先级:!大于&&大于||
- 结合性:从左至右
- 注:①与的左侧为假,则不会进行右侧②或的左侧为真则不会进行右侧
-
位
- 包括①按位与(&)②按位或(|)③按位异或(^)④按位取反(~)⑤左移(<<)⑥右移(>>)
- 结果:将整数转换成二进制再就行运算
- ①为逐位进行与运算
- ②逐位进行或运算
- ③逐位进行按位异或运算(相异为真,相同为假)
- ④逐位进行取反运算(0为1,1为0)
- ⑤a<<n,a的二进制数向左移n位,a的前n位舍去,后面用0补齐
- ⑥a>>n,a的二进制数向右移n位,a的后n位舍去,前面用0补齐(有符号补符号,无符号补零)
-
自增自减
- 包括①自增(++)②自减(--)
- 结果:①i++,使用i之后再使i的值加1②++i,先使i的值加
- 结合性:从右至左
-
赋值
- 包括赋值号(=)
- 优先级:!>算术>关系>&&>||>赋值
- 结合性:从右至左
- 注:左边一定为变量,且右边表达式的计算结果的数据类型应与变量的数据类型相同
-
复合赋值
- 由赋值运算符前加一个双目运算符组成
- 优先级:与=相同
- 结合性:从右至左
- 例a+=b-1等价于a=a+(b-1)
-
逗号
- 包括逗号(,)
- 优先级:最低
- 结合性:从左至右
- 结果:最后一个表达式的值
- 作用:将表达式分隔开
- 注:C语言常将逗号作为分隔符
-
条件
- 包括条件运算符(?:)
- 优先级:逻辑>条件>赋值
- 结合性:从右至左
- 作用:判断结果,如果是第一个是真,则进行第二个,否则进行第三个
-
求字节数
- 包括sizeof()
- 形式①sizeof(数据类型)②sizeof(变量名)③sizeof 变量名