操作符简介

1,算数操作符
+ - * / %
除了%之外(两数必须为整数),其他操作符都可以用于整数和浮点数的操作
结果的符号与模前数一致;
例子:
printf("%d\n",10%3); =1
printf("%d\n",-10%3); = -1
printf("%d\n",(-10)%(-3) ); = -1
printf("%d\n", (10% (-)3)); = 1
2,移位操作符
左移操作符 << (左边抛弃,右边补0) 相当于乘法
2^n(变大为原来的多少倍) n为左移的位数
右移操作符 >> (逻辑移位:左补0,右抛弃) 相当于除法
( 算术移位:左边用原符号,右边抛弃)
比较两数大小用位移操作符:
int max (int a,int b)
{
return (a-b)>>31? -1:((a-b)?1:0);
}
移位运算符,不要移动负数位(标准未定义)
一个数没有被赋值,自身的值不会变
3,位操作符(操作数必须是整数)
& // 按位与
| 按位或
^ 按位异或
两值交换(异或)
a=a^b
b=a^b
a=a^b

4,关系操作符(用于比较)
<= >= != == < >
在条件判断时 ( a == b),为防止写错可以变成(b==a)
5,逻辑操作符
&&
||
表达式1 &&表达式2
表达式1为真时再执行表达式2;如果表达式2为假,整个表达式为假。只有表达式1和2全为真时才整个表达式才为真。
表达式1 ||表达式2
表达式1为真时,后面的表达式不必执行,整个表达式为真,

6,赋值操作符(可以重新赋值)
可以连续赋值(从右到左)但是不容易读
(1) a=b=x+y
(2) b=x+y;
a=b;
复合操作符
+= -= *= /= %= >>= <<= &= ^= |=
a=a+b;可以写成a+=b 其他的也一样
7,单目操作符
!逻辑反操作 &取地址 sizeof(操作数字符长度)()强制转换 ~ 二进制按位取反
*间接访问操作符 + -
sizeof计算长度时不进入,只看类型
void test( char arr[])
{
printf("%d\n",sizeof(arr)) //4
}
注意: & 按位与:有0出0,全1为1(相当于∩);
作用:1,清 0 2,取一个数中的指定位
| 按位或:有1出1,全0为0;
作用:统计1的个数
^ 异或:相同为0,不同为1
作用:任何值^0为它本身
x^x=0;
a^b ^b=a;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值