一起聊聊C语言中有趣的操作符

大家学习C语言的时候经常会用到许许多多的操作符,今天呢,我就对C语言中一些简单且实用的操作符来做个小小的总结,当然,肯定会有一些纰漏,欢迎大家留言评论进行补充

其实C语言中的操作符就我们经常使用的来说呢,大致可以有:单目运算符,双目运算符(1.算术运算符,2.逻辑运算符,3.关系运算符,4.移位运算符,5.赋值运算符,6.逗号表达式),三目运算符(条件表达式),前述操作符。

1.单目操作符

逻辑反
~按位取反
++自增(分为前置++,后置++)
--自减(分为前置--,后置--)
-负值
+正值
*解引用
&取地址
(type)强制类型转换
sizeof

操作数的类型长度(以字节为单位)

注意:当++,--两个运算符放在变量的前面的时候,表示先对变量进行操作然后再使用。

           当放在后面时,就是先使用在进行操作。

 

2.运算操作符

+

加法运算
-减法运算
*乘法运算
/除法运算
%取模运算(一个变量/另一个变量取余数)

:a=3,b = 5

b/a=1,

b%a=2,

a%b =3

 

3.逻辑运算符

&&逻辑与真&&假——>假
||逻辑或真&&假——>真
&按位与参与运算的两数字二进制相与。对应位上均为1时,结果才为1,否则为0。
|按位或参与运算的两数字二进制相或。对应位上均为0时,结果才为0,否则为1。
^按位异或参与运算的两数字二进制相异或。对应位上相异时,结果才为1,否则为0。

例:a=5,  b=8

二进制为:a=0101,b=1000(只取了二进制里后四位,前面的所有位都是0)

a&b = 0000

a|b=1101

a^b = 1101

~a = 1010

~b = 0111

 

4.关系运算符

>大于
<小于
>=大于等于
=<小于等于
==等于
!=不等于

注意:“==”是判断两个数是否相等,而“=”是属于赋值操作

 

5.移位运算符

<<(左移)按二进制形式把所有数字向左移动对应位数,高位舍弃,低位补0
>>(带符号右移)按二进制形式把所有数字向右移动对应位数,低位舍弃,高位的空位补符号位。
>>(无符号右移)按二进制形式把所有数字向右移动对应位数,低位舍弃,高位空位补0。

例:a = -5

       b = 5

a:

    原码:1000  0000  0000  0000  0000  0000  0000  0101

    反码:1111  1111  1111  1111  1111  1111  1111  1010

    补码:1111  1111  1111  1111  1111  1111  1111  1011

b;

    原码:0000  0000  0000  0000  0000  0000  0000  0101

    反码:0000  0000  0000  0000  0000  0000  0000  0101

    补码:0000  0000  0000  0000  0000  0000  0000  0101

则  a <<  2  = 1111  1111  1111  1111  1111  1111  1110  1000  =  -20(即:为原数据*2^2)

      a >>  2 = 1111  1111  1111  1111  1111  1111  1111  1110   =  -2  (即:为原数据/2^2)

      b <<2   = 0000  0000  0000  0000  0000  0000  0001  0100   =   20(即:为原数据*2^2)

      b>>2    =  0000  0000  0000  0000  0000  0000  0000  0001   =  1   (即:为原数据/2^2)

 

 

6.赋值运算符

=赋值运算符:变量 = 表达式
+=加后赋值:    变量 += 表达式 
-=减后赋值:     变量-=表达式
*=乘后赋值:     变量*=表达式
/=除后赋值:      变量./=表达式
%=取模后赋值:  变量%=表达式
<<=左移后赋值:   变量<<=表达式
>>=右移后赋值:   变量>>=表达式
&=按位与后赋值: 变量&=表达式
|=按位或后赋值: 变量|=表达式
^=按位异或后赋值:变量^=表达式

7.逗号表达式

用逗号隔开的多个表达式,从左往右依次计算表达式,逗号表达式的优先级最低

例:x=1,;y=1;

      z=x++,y++,++y

此时的x,y,z分别为2,3,1

因为不仅要考虑逗号表达式,还要考虑优先级问题。

 

8.条件表达式

条件?表达式1:表达式2

如果条件为真,则表达式1,如果条件为假,则表达式2

例:a = 1;b = 2

   c=  (a>b)?a+1:b+1

这时C=3

 

 

9.前述操作符

1.[]

数组下标引用

接收连个操作数,即:数组名和索引

array[]={1,2,1,3,4,6,7,5,9}

array[4] = 4;

2.()

该操作符可以接受函数名与参数作为操作数。

  注意:至少有一个操作数,即函数名

3.结构体成员变量

     a. "  -> "用于访问结构体成员变量的地址。

     b." .  "   用于访问结构体成员变量的内容

 

好了,我的操作符总结已经完成了,希望可以给你带来帮助,当然,如果有查缺补漏,也欢迎留言评论

对了,上面内容中操作符全用红色标识出来了,切勿看错。

好了,不说了,日常打代码去了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值