一、操作符的定义
简单来说操作符就是告诉编译程序执行特定数学运算,逻辑运算,位运算的符号。
二、操作符的分类
算数操作符
逻辑操作符
关系操作符
单目操作符
赋值操作符
位操作符
移位操作符
逗号表达式
三、各种操作符的介绍
1. 算数操作符:+、-、*、/、%(取模)
(1). 两个操作数相加,相减,相乘,相除既可以是两个整型数字,也可以是两个浮点操作数。取模运算必须是两个整型操作数,求出整除之后的余数。
(2). “/“ :两数相除时,两个整型相除,结果为整型;只要有一个浮点型,则结果为浮点型 。
(3). 算数操作符有两个操作数,所以不是单目操作符。
2. 逻辑操作符:&&(逻辑与),||(逻辑或)
逻辑与:只要有一个为假,则结果为假返回0。
逻辑或:只要有一个为真,则结果为真返回非零数(1)。
3. 关系操作符:>,<,大于等于>=,小于等于<=,不等于!=,等于==
注意:两个等号是等于,一个等号是赋值。
4. 单目操作符:只有一个操作数的运算符
(1)逻辑反操作:!
eg: a==1, ! a==0,即为假。
(2)取地址:& 返回变量a的地址:&a
(3)对一个数的二进制数按位取反:~
计算机中对一个数是用补码存放的
eg: a的值 10000000000000000000000000000011
~a的值11111111111111111111111111111100
(4) 正值+ 负值- 正值加号一般省略
(5)自增自减:++a, --a, a++, a--
加(减)号在前/后,使用a之前/后加(减)一
(6) 操作数的类型长度,以字节为单位 sizeof
注意:1. sizeof()不是函数,求变量大小时括号可有可无,求类型大小时括号不能省略。
2. sizeof()括号中的表达式不参与运算。
3. sizeof(数组名):数组名表示整个数组的大小
&数组名:数组名表示整个数组,取出的是整个数组的地址
其他情况下,数组名均表示首元素或首元素的地址
5. 赋值操作符:可以重新赋值,包括复合赋值操作符。
= += -= *= /= %= 左移赋值<<= 右移赋值 >>= 按位与并赋值&= 按位或并赋值|= 按位异或并赋值^=
6. 位操作符:操作数必须为整数
按位与& 只要有一个0那一位就是0
按位或 | 只要有一个1那一位就是1
按位异或^ 相同为0不同为1
7. 移位操作符:左移位操作符<< 二进制数左移符号,左操作数的值向左移动指定位数,左移一位的结果相当于乘以2。规则:左边抛弃右边补零。
右移位操作符>> 二进制数右移符号,右操作数的值向右移动指定位数,右移一位的结果相当于除以2。
规则:逻辑移位:右边丢弃左边补零。
算数移位:右边丢弃左边补符号位(整数补0,负数补1)。
注意:不能移动负数位,比如 <<-1,这是错的。
8. 逗号表达式:就是用逗号隔开的多个表达式,从左向右开始执行,结果是最后一个表达式的结果。
三、优先级比较
由高到低:单目操作符>算数操作符>关系操作符>逻辑操作符>逗号表达式