竟然还有你不知道的操作符

C语言操作符的分类:

算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式。

一、算术操作符:+、-、*、/、%

1.除了%操作符之外,其他的几个操作符可以用作整数和浮点数。

2.除了/操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。

3.%操作符的两个操作数必须为整数。返回的是整除之后的余数。

二、移位操作符

〈〈左移操作符:移位规则:左边抛弃,右边补0

〉〉右移操作符:移位规则:(1)逻辑移位:左边用0填充,右边丢弃(2)算术移位:左边用原值的符号位填充,右边丢弃。


三、位操作符

&   //按位与    |    //按位或    ^  //按位异或

它们的操作数必须是整数

四、 赋值操作符

+=  -= *=  /=  %= >>=  <<=  &= |=  ^=

五、 单目操作符

!逻辑反操作  -负值   +正值  &取地址  sizeof操作数的类型长度(以字节位单位)  ~对一个二进制数按位取反   --前置、后置 --   ++前置、后置++

        *间接访问操作符(解引用操作符

        (类型)强制类型转换操作符

        sizeof 是一个操作符不是函数 

         int a = 0;    sizeof (a)  和sizeofa都是正确的

         但是sizeof(int)正确  sizeof int 错误    

         前置++a,--a 先计算a++和--后a的值,早使用a

         后置a--,a++   先使用a的值,然后a的值再自增,自减

六、 关系操作符

<   <= >  >=   !=  ==

七、 逻辑操作符

&&      逻辑与      ||逻辑或

区分按位与和逻辑与

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的值

八、 条件操作符

exp1 ? exp2 : exp3

如果exp1结果为真,表达式的结果为exp2的结果,否则为exp3的结果

a>  b? max=a : max = b;也可以写为 max = a>b? a : b;

九、 逗号表达式

逗号表达式从左向右依次执行,整个表达式的结果是最后一个表达式的结果。

其他运算符中的三目运算符“condition?exp1:exp2 ”是C语言中唯一的三目运算符可以用if——else语句来描述。


总结:1  左移运算符左移一位相当于乘二,其效率比乘以2的效率高。左移其右边自动补零,右移其左边补符号位。

2   这些操作符的优先级顺序    ! > 算术运算符 > 关系运算符 > && > || > 赋值运算符,    

3   按位与 ,或运算符不能和逻辑与,或搞混。弄清二者的区别,否则程序会出现意想不到的bug,排查起来不容易被发现。

 

  

 

       

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值