操作符

在操作符中最重要的就是操作符运算顺序:算数运算符>关系运算符>逻辑运算符>赋值运算符>逗号运算符

操  作  符 :

1.算术运算符

+ - * / %

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

对于/操作符如果两个操作数都为整数,执行整数除法。只要有浮点数就执行浮点数除法。

%操作符的两个操作数必须为整数。返回的是余数。

 

2.移位运算符       •二进制中是补码而不是原码

左移:<<    (数值变为两倍)   右移: >>(数值缩小一半)

左移规则:左边不要,右边补0.

右移规则:有两种

①逻辑移位:左边补0,右边不要。

②算数移位:左边用原来的符号位填充,右边不要。

记住:对于移位运算符,不要移动负数位。

for example:

int num=10;
num>>-1;   //error

 

 

3.位运算符(二进制)

① &:按位与    同时为1,则为1,否则为0.

② ||:按位或     同时为0,则为0,否则为1.

③ ^:按位异或  相同为0,不同为1.

for  example:不创建第三个变量,交换两个数

#include<stdio.h>
int main()
{
	int a = 10;
	int b = 20;
	a = a^b;
	b = a^b;
	a = a^b;
	printf("a=%d,b=%d\n", a, b);
	return 0;
}

 

 

 

4.赋值运算符

“=”的优先级低于其他的运算符

复合赋值符:-=    +=

-= :  num -= 10---- > num = num - 10;
+= :  num += 10---- > num = num + 10;

 

 

5.单目运算符

!逻辑反操作   -负值    +正值    &取地址    

sizeof操作数类型长度(以字节为单位)   ~对二进制数按位取反   

--前置(先自减,再赋值)、后置      ++前置(先自增,再赋值),后置

*间接访问操作符(解引用操作符)     (类型名)强制类型转换

 

 

6.关系运算符

<      >      <=      >=      !=      ==

关系运算符的值只能为0或1。

结果为真时值为1,结果为假时值为0。

关系运算符的优先级低于算数运算符。

关系运算符的优先级高于赋值运算符。

 

 

7.逻辑运算符

①逻辑与:&&只要有一个为0,结果为0;全为1,结果为1。

②逻辑或:||只要有一个为1,结果为1;全为0,结果为0。

③逻辑非:!取运算对象的相反值

注意:逻辑与位运算的区别

1&2----->按位与,结果为0
1&&2---->逻辑与,结果为1

1|2----->按位或,结果为3
1||2---->逻辑或,结果为1

 

 

 

8.条件运算符

条件运算符优先级高于赋值运算符,低于算数、逻辑、关系运算符。

类似于if语句,形式为    ( 表达式1?表达式2:表达式3)

for  example:

a>b?a:b     //max

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值