1.算术操作:
+ - * / %/
1)两个数均为整数则进行整数除法
2)只要有一个数为浮点数就进行浮点数除法
%
1)%操作符的两个操作数必须为整数
2.关系运算符:
== 等于;
!= 不等于;
>= 大于等于;
<= 小于等于;
>
大于 ;
< 小于;
*注意;等于为==,=为赋值运算
为了我们更清楚这一点,可以写为以下形式:
if(3==i)
3
.逻辑操作符:
&& 逻辑与;
|| 逻辑或;
! 非;
*注:逻辑与左边为0,右边不计算
逻辑或左边为1,右边不计算
逻辑或左边为1,右边不计算
4.位操作符:
& 按位与
| 按位或
~ 按位非
位指的是二进制位
注意:操作数必须是整数
| 按位或
~ 按位非
位指的是二进制位
注意:操作数必须是整数
5..赋值操作符
=
可以重新赋一个值
复合赋值符:
+= -= *= /= %= >>= <<= &= |=
这些运算符都可以写成复合的效果
6.单目操作符
!逻辑反操作
非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强制转换为浮点型
7.条件操作符
exp1?exp2:exp3
例:
if(a>3)
b = 1;
else
b = -1;
用条件表达式来写是:
b =(a>3)? 1 : -1
8.移位操作符
1、<< 左移操作符
左边抛弃,右边补0;
2、>> 右移操作符
(1)逻辑右移
右边丢弃,左边补0;
(2)算数右移
左边用原该值的符号位填充,右边丢弃
eg: int num=-1;
num >> 1;
num=-1;
-1的补码:11111111111111111111111111111111
逻辑右移:01111111111111111111111111111111 //-1
算数右移:11111111111111111111111111111111 //-1
左边抛弃,右边补0;
2、>> 右移操作符
(1)逻辑右移
右边丢弃,左边补0;
(2)算数右移
左边用原该值的符号位填充,右边丢弃
eg: int num=-1;
num >> 1;
num=-1;
-1的补码:11111111111111111111111111111111
逻辑右移:01111111111111111111111111111111 //-1
算数右移:11111111111111111111111111111111 //-1
9.操作符的属性:
复杂表达式的求值有三个影响的因素。
1. 操作符的优先级
2. 操作符的结合性
3. 是否控制求值顺序。
两个相邻的操作符先执⾏哪个?取决于他们的优先级。如果两者的优先级相同,取决于他们的结合性。