操作符类型
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员
算术操作符
算术操作符:+ - * / %
- 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
- 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
- % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
int a=9-2;//a=7
int a=9+2;//a=11
int a=9*2;//a=18
int a=9/2;//a=4
float a=9-2.0;//a=4.5
int a=9%2;//a=1
移位操作符
<< 左移操作符
>> 右移操作符
int a=2;
int b=a<<1;//b=4
int b=a>>1;//b=1 2^1-->2^0
涉及原码补码反码操作暂不讲解(简单说一下整数的)
正整数:原码=补码=反码
负整数:原码 : 比如 -15 二进制 1000 1111
反码: 1111 0000
补码: 1111 0001
注:移位操作符的操作数只能是整数。
位操作符
& //按位与
| //按位或
^ //按位异或
3&1 —>001
3|1 —>011
3^1 —>010
负数运算也是如此,
按位与&:有0则结果为0
按位或| :有1则结果为1
按位异或^:不同则为1
运算法则:补码相运算,然后把补码根据原码反码补码的关系,转为原码,则最终得到的数字就是原码所代表的数字,只不过是以补码的形式进行存储
注:他们的操作数必须是整数。
赋值操作符
赋值操作符:= += -= *= /= &= ^= |= >>= <<=
单目操作符
操作符 | 解释 |
---|---|
! | 逻辑反操作 |
- | 负值 |
+ | 正值 |
& | 取地址操作符 |
sizeof | 操作数的类型长度 |
~ | 对一个数的二进制进行按位取反 |
– | 前置、后置– |
++ | 前置、后置++ |
* | 间接解引用操作符 |
前置 就是 先操作符再使用(例:++a 先加 再使用)
关系操作符
>
>=
<
<=
!= 不相等
== 相等
比较字符串是否相等时不能用==,用strcmp函数,头文件是sting.h
条件操作符
exp1 ? exp2 : exp3
逗号表达式
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
函数调用操作符
接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。