C语言已经学习了这么久了,今天来总结一下C语言中的那些操作符。
一、算数操作符
+ - * / %
这些都是最基本的操作符,但是要注意 % 运算符两边都只能是整型。 / 运算两边只要有一边为
浮点数则按浮点数运算,并且除数不能为0。
二、移位操作符
右移操作符(意味着除2) <<左移操作符(意味着乘2)
右移操作符在进行逻辑移位操作的时候,左侧补0,右侧被挤掉,而进行算术右移的时候则左侧
保留最高位符号位,右侧被挤掉。
左移操作符则左侧被挤掉,右侧无脑补0。
移位操作符在使用的时候,要注意不能超过最大比特位,也不能移动负数位。
代码示例
a>>1;
a<<1;
三、位操作符(必须是整数)
& 按位与操作。两个整数进行按位与操作,其二进制数中对应位数同为1就是1,不然就是0。
比如(3&10)
3: 0011
10: 1010
3&10: 0010
| 按位或操作。两个整数进行按位或操作,其二进制数中对应位数同为0才是0,不然就是1。
比如(3|10)
3: 0011
10: 1010
3|10: 1011
^ 按位异或。 两个整数进行按位异或操作,其二进制数对应位数相同为0不同为1。
比如(3^10)
3: 0011
10: 1010
3^10: 1001
四、赋值操作符
= 赋值操作可以给变量重新赋值
另外还有很多的复合赋值操作符
如:+= -= *= /= %= >>= <<= &= |= ^=
这些复合操作符都可以写成类似于
int a = 0;
a = a + 1;//等价于a+=1;
五、 单目操作符
!逻辑取反
- 表示负值
- 表示正值
& 取地址
- sizeof( ); 以字节为单位求操作数的类型长度
- 对一个值进行二进制数取反
++ – 自增,自减 可以前置和后置(两种返回值不同)
- 解引用操作符
(类型) 强制类型转换
六、关系操作符
< >= <= != ==
这些也都是一些基本的操作符,值得注意的是数学中的等号用==表示,并且字符串类型不能用
==来判断相等。
七、逻辑操作符
&& 逻辑与操作,两边同为真则为真,有一边为假就为假。C中假用0表示,其他都表示真。
|| 逻辑或操作,两边同为假则为假,有一边为真就为真。
八、条件操作符(三目操作符)
exp1 ? return1:return2;
这个代码等价于
if(exp1)
{
return1;
}
else
{
return2;
}
九、逗号表达式
很少会用到,但在for()循环中,可以同时更新多个循环变量。
十、其他操作符
() 在不知道代码优先级的时候多用
[] 下标引用操作符,借助下标引用操作符来访问数组成员。
. 用来访问结构体成员
-> 用来访问结构体指针成员
最后总结一下操作符的运用需要注意的细节。
1 注意操作符的优先级,在不知道的时候使用(),建议多使用()避免出错。
2.如果写出的代码不能通过操作符属性确定计算的优先级,即在运算中有歧义,那么这个表达式
是有问题的。
3.注意表达式的使用,来使代码变得美观规范,可读性更好。
今天的总结到这里就结束了,如果有什么不对或者缺少的欢迎大家在评论区留言讨论。