1.算术操作符
+ - * / %
/
1)两个数均为整数则进行整数除法
2)只要有一个数为浮点数就进行浮点数除法
%
1)%操作符的两个操作数必须为整数
2.移位操作符
<<左移操作符
左边抛弃,右边补0;
例:
int num = 6;
num 在内存中的二进制:00000000000000000000000000000110
num<<
num 在内存中的二进制: 00000000000000000000000000001100
注意:在num没被复制的情况下,自身的值不会改变
>>右移操作符
1)逻辑移位
右边抛弃,左边补0
例:
int num = -7;
num在内存中的二进制:10000000000000000000000000000111
num>>
num在内存中的二进制:00000000000000000000000000000011
2)算术移位
右边抛弃,左边补符号位
例:
int num = -7;
num 在内存中的二进制:10000000000000000000000000000111
num>>
num 在内存中的二进制:10000000000000000000000000000011
注意:移位操作符不能移动负数位,因为没有这样的定义
3.位操作符
& 按位与
| 按位或
~ 按位非
位指的是二进制位
注意:操作数必须是整数
4.赋值操作符
=
可以重新赋一个值
复合赋值符:
+= -= *= /= %= >>= <<= &= |=
这些运算符都可以写成复合的效果
例:int x = 1;
x = x*10;
x *= 10;
上面两个赋值语句效果相同
5.单目操作符
!逻辑反操作
非0为真,0为假
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(单位:字节)
1)sizeof可以求变量或类型所占空间的大小
2)变量可不放在()中,但类型一定要放在()中;
3)在sizeof(数组名)中 数组名表示整个数组
~ 对一个数的二进制按位取反
0变为1,1变为0
-- 前置、后置--
前置-- :先--后使用
例:int a = 1 ;
int b = 0;
b = --a;
得到结果a=0;b=0;
后置-- :先使用后--
例:int a = 1 ;
int b = 0;
b = a--;
得到结果a=0;b=1;
++ 前置、后置++
与--原理相同
* 间接访问操作符(解引用操作符)
例:
int num = 10;
int *p = &num;
*p = 20;//*p就相当于num
(类型) 强制类型转换
例:int a = 1 ;
float b = 0;
b = (float)a; //这里就是将整型的a强制转换为浮点型
6.关系操作符
> 大于
< 小于
>= 大于等于
<= 小于等于
== 相等
注意:相等是两个等号,一个等号是赋值
!= 不等
7.逻辑操作符
&& 逻辑与
|| 逻辑或
非0为真,0为假
8.条件操作符
exp1?exp2:exp3
例:
if(a>3)
b = 1;
else
b = -1;
用条件表达式来写是:
b =(a>3)? 1 : -1