操作符
一、操作符的分类
1. 算数操作符
2. 位移操作符
3. 位操作符
4. 赋值操作符
5. 单目操作符
6. 关系操作符
7. 逻辑操作符
8. 条件操作符
9. 逗号操作符
10. 下标引用、函数调用和结构成员
二、逐个讲解
1、 算数操作符
+ - * / %
1) 除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。
2) 对于/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
3) %操作符的两个操作数必须为整数。返回的是整除之后的余数。
2、位移操作符
>>右位移操作符 << 左位移操作符
1) 左位移操作符
位移规则:左边抛弃,右边补0
在没有赋值的情况下自身的值不发生变化。
int num= 10;
num<<1; //num的值没有发生变化还是10
num= num<<1; //num的值才发生变化,位20
2) 右移操作符
首先右移分两种:
a) 逻辑位移
左边用0填充,右边丢弃
unsignedint num = 0xffffffff//是-1的补码的形式
printf(“%d”,num); //输出的是-1而不是一个整数,因为%d是按十进制整数的格式输出,
printf(“%u”,num); //输出的是一个最大的正数,%u表示输出的是无符号的
num= num>>1; //结果是0x7fffffff
b) 算数位移
左边用原来的符号位填充,右边丢弃。
intnum = 0xffffffff;
num= num>>1;//num的值位0xffffffff -1的补码
3、位操作符
& //按位与 | //按位或 ^ //按位异或
它们的操作数必须是证书
4、 赋值操作符
+= -= *= /= %= >>= <<= &= |= ^=
5、 单目操作符
!逻辑反操作 -负值 +正值 &取地址 sizeof操作数的类型长度(以字节位单位) ~对一个二进制数按位取反 --前置、后置 -- ++前置、后置++
*间接访问操作符(解引用操作符)
(类型)强制类型转换操作符
sizeof 是一个操作符不是函数
int a = 0; sizeof (a) 和sizeofa都是正确的
但是sizeof(int)正确 sizeof int 错误
前置++a,--a 先计算a++和--后a的值,早使用a
后置a--,a++ 先使用a的值,然后a的值再自增,自减
6、 关系操作符
< <= > >= != ==
7、 逻辑操作符
&& 逻辑与 ||逻辑或
区分按位与和逻辑与
1&2-------->0 1&&2-------->1
1|2--------->3 1||2----------->1
a&&b&&c 当a的值为0,则不再判断b和c,也不再计算b和c的值
a||b||c 当a的值为1,则不再判断b和c,也不再计算b和c的值
8、 条件操作符
exp1 ? exp2 : exp3
如果exp1结果为真,表达式的结果为exp2的结果,否则为exp3的结果
a> b? max=a : max = b;也可以写为 max = a>b? a : b;
9、 逗号表达式
逗号表达式从左向右依次执行,整个表达式的结果是最后一个表达式的结果。
c语言操作符的总结
最新推荐文章于 2023-12-27 21:40:19 发布