操作符
操作符的分类
算法操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号操作符
下标引用、函数调用和结构成员
算法操作符
* / % + -
对于“/”,当有一个操作数是浮点数时,计算结果就是浮点数。如
int main()
{
double a = 10.0;
int b = 5;
printf("%f", a / b);
system("pause");
return 0;
}
计算结果是2.00000000。
移位操作符
>>右移操作符
<<左移操作符
右移操作符规则
右移操作符分两种
1.逻辑右移
即右移后左边用0填充
2.算术移位
右移后左边用原符号位填充
左移操作符规则:
左移后右边补0
注意
一个数无法移动负数位
//error
int n=5;
n>>-1;
位操作符
& //按位与
| //按位或他们的操作数必须是整数
int main()
{
int a = 3;
int b = 5;
printf("%d %d %d ", a&b, a | b, a^b);//与 或 异或
system("pause");
return 0;
}
注:与、或、异或是对数字的二进制数进行操作
赋值操作符
赋值操作符
即’=‘,只能对变量进行赋值
复合赋值符
+=
-=
*=
/=
%=
>>=
<<=
&=
|=
^=
单目操作符
! 逻辑反操作符
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
- - 前置,后置- -
++ 前置,后置++
** 间接访问操作符
关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等"
逻辑操作符
&& 逻辑操作与
|| 逻辑操作或
按位与逻辑与区别
1&2–>0
1&&2->1
按位或和逻辑或区别
1|2–>3
1||2–>1
条件操作符
exp1 ? exp2 : exp3