C语言操作符总结

一、算术操作符。

首先了解一下算术标识符都有哪些:+、-、*、/、%。

即最常用的加,减,乘,除,模的用法,它们之间的优先级类似于数学,乘除模的优先级高于加减,这里举个栗子:

20 - 10 + 15 / 5 * 20 % 3

先乘除所以, 15 / 5 = 3, 3 * 20 = 60, 60 % 3 = 0,
然后 20 - 10 = 10, 10+0 = 10;

二、移位操作符。

移位操作符有两种:>>(右移操作符)、<<(左移操作符)。

  • (左移操作符<<):用来将一个数的各二进制位全部左移若干位,移动的位数由右操作数指定,右操作数必须是非负值,其右边空出的位用0填补,高位左移溢出则舍弃该高位。

  • (右移操作符<<):将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0。

特别注意右移操作时分为两种情况:

1、算术右移

算术右移情况指的是:二进制数有正负之分,左边位补原数的符号位;

2、逻辑移位。

逻辑移位情况指的是:不需要考虑符号产生的问题,直接补0即可。

注意:

1、移位操作符不能直接赋值改变变量。

如果需要改变变量需要这样输入:a>>=1;

2、左移操作相当于*2;

右移操作相当于/2。

3、算术运算符 优先于 位移位运算符 优先于 关系运算符

三、位操作符。

位操作符包括:&(按位与)、|(按位或)、^(按位异或)、~(取反)。

  • [&] :按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

  • [|] :按位或运算符“|”是双目运算符。 其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

  • [^] :按位异或运算符“^”是双目运算符。 其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现。

  • [~] 求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的各二进位按位求反。

四、赋值操作符。

赋值操作符在之前的程序代码中经常出现,其操作符有:
+= 加赋值
-= 减赋值
*= 乘赋值
/= 除赋值
%= 求余赋值
&= 按位与赋值
| = 按位或赋值
^= 按位异或赋值
<<= 左移位赋值
>>= 右移位赋值

注意在连续赋值时,应从右往左赋值,例如:

a=x=y+1;

输出时a的值就应是y+1。

五、单目操作符。

单目操作符有:!(逻辑反操作、非)、&(取地址符)、sizeof(求长度)、~(按位取反)、++、–、*、(类型)等。

需要注意的是:

1、&是取地址符,%p打印地址。

2、sizeof()是操作符,不是函数!

3、++的前置和后置。

六、关系操作符。
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”

七、逻辑操作符

  1. 与运算(&&)
    参与运算的两个表达式都为真时,结果才为真,否则为假。
  2. 或运算(||)
    参与运算的两个表达式只要有一个为真,结果就为真;两个表达式都为假时结果才为假。

八、条件操作符(C语言中唯一 一个三目运算符)
exp1 ? exp2 : exp3

exp1 为真 结果为exp2 为假 结果为exp2。

#include<stdio.h>
int main()
{
    int a=10, b=0;
    if (a > 5)
        b = 3;
    else b = -3;
    printf("b=%d\n", b);
    system("pause");
    return 0;
}

九、逗号表达式
exp1, exp2, exp3, …expN

逗号表达式,就是用逗号隔开的多个表达式。 逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
如:(3+5,6+8)的值是14;a=(a=35,a4)的值是60,其中(a=35,a4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。

基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.
逻辑运算最后结合。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值