c语言操作符总结

     C语言操作符大致分为:算术操作符、移位操作符、位操作符、赋值操作符、单目运算符、逻辑操作符、条件操作符、逗号操作符、

下标引用、函数调用和结构成员。

算术操作符:+ - * / %  这些操作符都很常见,也不用特别的说明。但是有一点:除%外,其他几个操作符可以作用于浮点数和整数。

移位操作符:<< 左移    >>右移     举个例子:00000000 ...00000010<<      00000000...00000100         左移

                                            00000000...00000010>>       00000000...00000001         右移

                          右移:1.算数移位(右边丢弃,左边补符号位)

                                2.逻辑移位(右边丢弃,左边补0)

位操作符:&、|、^

假设A的值是6,B的值是11。

位操作符

描述

实例

&

按位与

A&B得到2,即

0010(简写)

|

按位或

A|B得到15,即

1111(简写)

^

按位异或

A^B得到13,即

1101(简写)

注:他们的操作数必须是整数。

赋值操作符:

    赋值操作符是一个很棒的操作符,他可以让你得到一个你之前不满意的值。也就是你可以给自己重新赋值。其中包括复合操作符。

赋值操作符

描述

实例

=

简单的赋值运算符,把右边操作数的值赋给左边

C=A+B将A+B的值

赋给C

+=

加且赋值运算符

C+=A相当于C=C+A

-=

减且赋值运算符

C-=A相当于C=C-A

*=

乘且赋值运算符

C*=A相当于C=C*A

/=

除且赋值运算符

C/=A相当于C=C/A

%=

求模且赋值运算符

C%=A相当于C=C%A

<<=

左移且赋值运算符

C<<=1相当于C=C<<1

>>=

右移且赋值运算符

C>>=1相当于C=C>>1

&=

按位与且赋值运算符

C&=1相当于C=C&1

^=

按位异或且赋值运算符

C^=A相当于C=C^1

|=

按位或且赋值运算符

C|=A相当于C=C|1

比如:

[html] view plain copy
  1. <span style="font-family:SimSun;font-size:18px;">   int x = 10;  
  2.    x = x+10;  
  3.    x+=10;   //复合赋值</span>  

(5)单目操作符:

! 逻辑反操作

- 负值

+ 正值

& 取地址

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

~ 对一个数的二进制按位取反

-- 前置、后置--

++ 前置、后置++

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

(类型) 强制类型转换

假如a的值是1。

单目操作符

描述

实例

逻辑反操作,用来逆转操作数逻辑状态

!a为假

&

返回变量的地址

&a;给出变量实际地址

sizeof()

操作数的类型长度

返回变量的大小

sizeof(a)将返回4,其中a是整数

~

对一个数的二进制按位取反

~a的值是0

*

间接访问操作符

指向一个变量

*a;将指向一个变量

++

自增运算符

a++得到2

--

自减运算符

a--得到0

++ 前置、后置++区别:

    ++i(在使用i之前,先使i的值加1)

    i++(在使用i之后,再使i的值加1)

注意:

    1、sizeof()不是函数,在求变量大小时可去掉括号,但求类型大小时一定要加括号。

    2、放在在sizeof()内部表达式不参与运算。

    3、数组名单独放在sizeof()内部,数组名表示整个数组。

    4、&数组名—数组名表示整个数组。

    5、指针++取决于指针的类型。

关系操作符:

>

>=

<<=

!= 用于测试“不相等”

== 用于测试“相等”

注意一些运算符使用时候的陷陷。比如:

   x = get_value();

   if(x = 5)

我们将判断的 == 搞成了赋值的 = ,这样的话无论x是多少都会被执行,所以切记不要写错了。

逻辑操作符:

&& 逻辑与

|| 逻辑或

区分逻辑与和按位与,逻辑或和按位或:

    1&2----->0

    1&&2---->1

    1|2----->3

    1||2---->1

条件操作符:

    exp1 ? exp2 : exp3

    如果条件为真则看exp2 ;如果条件为假,则看exp3

逗号表达式:

    exp1, exp2, exp3, …expN

注意:

    1、逗号表达式,就是用逗号隔开的多个表达式。

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

下标引用、函数调用和结构成员:

1. [ ]下标引用

   操作数:一个数组名 + 一个索引值

[html] view plain copy
  1. int arr[10];//创建数组  
  2. arr[9] = 10;//实用下标引用操作符  

   [ ]的两个操作数是arr和9。

2. ()函数调用操作符

    接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

3. 访问一个结构的成员

    . 结构体.成员名

    -> 结构体指针->成员名


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值