c语言操作符的讲解

一,操作符的分类

接下来,让博主为你一一讲解各类操作符

二,算术操作符

这里要注意的是/号,/两端必须都是整数。,得出的结果是整数

如果想要得到小数,可以把/一端换成小数

相信大家都理解/的用法了吧~当然我们也要理解%两端也是整数,返回的结果是整数相除后的余数

三.移位操作符

无符号:unsigned

注意:对于正的整数,原码=反码=不骂,可以不用计算(0当作无符号数整数)

而对于负的整数,原码,补码,反码需要计算

反码:原码的符号位不变,其他的按位取反

补码:补码是反码的二进制+1

举个栗子吧~

不管是正数还是负数,内存中存储的都是补码的二进制,整数在计算机的时候也用的补码!!!

左移操作符:(有*2的效果)

步骤:左边丢弃,右边补0

相信大家应该很好奇负数吧~让我们看看负数的效果吧

右移操作符(2种方式):(有/2的效果)

1.算数右移:

右边直接丢弃,左边用该原值的符号位填充

2.逻辑右移:

右边直接丢弃,左边直接补0

采用哪种右移方式,取决于编译器,大部分编译器用的是算术右移

例如:int num=10;num>>-1(是错误的方法)

四,位操作符(必须是整数)

 补码得到原码的三种方法:

 异或运算的特点:相同为0;相异为1

a^a=0;         0^a=a;

 例题:不创建第三个变量,交换两个数

五,复合运算符

六,单目操作符

1.*和&的介绍: 

2. sizeof的知识点:

3.~的知识点:

 

4. ++,--的知识点

++操作是一种自增1的操作

前置++:先+1,后使用 (a=a+1,b=a)               后置++:先使用,后+1;(b=a,a=a+1)

 七.关系操作符

 唯一注意的是:==是等号,=是赋值

八,逻辑操作符

1,逻辑与&&(并且)

2,逻辑或||(或者)

让我们接下来看看一个代码: 

因为a++,先使用后自增,所以i=a++那一行式子,用的a=0,由于是&&的关系,所以a++后面的式子不用计算,所以输出结果是a=1,b=2,c=3,d=4,i=0

综上所述,可以得到,

&&的特点是 左边操作数如果为假,则右边不用计算;||的特点是 左边操作数为真,右边无需计算(称之为短路操作)

九,条件操作符(三目操作符)

举个例子:

求两个数的最大值:

方法1:

 方法2:

 十,逗号表达式(从左向右依次计算)

最终表达式的结果,取决于最后一个表达式的结果

if(a>1,b,d>0)        //也是一个逗号表达式,真正起判断作用的是d>0 

十一,下标引用,函数调用和结构成员

1,下标引用操作符

操作数+一个索引值

看下面代码的例子,5是操作数,arr【5】是一个索引值(索引值其实就是下标)

2,函数调用操作符

函数名+函数参数都是函数调用的操作数(对于一个函数调用操作数来说,最少有1个操作数(函数名,可以不传参)

 3,结构成员操作符

两种方式:

 

 十二,表达式求值

表达式求值顺序一部分是由操作符的优先级和结合性决定。

同时有的表达式操作数在运算过程中需要转化类型

12.1 隐式类型转化

1.算数转化(>=int类型)

如果某个操作符的各个操作数属于不同的类型,那么除非其中一个操作数的转化为另一个操作数的类型,否则操作就无法进行

2.整型提升(提升char short)

 

 

在这个代码中,我们看到,sizeof(+c)和sizeof(—c)发生了整型提升 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值