C语言——词法符号--->运算符

满满的干货满满的干货😍前两天很忙,终于有空更新啦!

目录

一、算数运算符

1.包括

2./整除

(1)算法规则

(2)如何显示小数

3.%取余

4.++加加

(1)独立成句时:

(2)赋值运算中:

(3)打印语句中:

二、逻辑运算符

1.包括

2.截断法则

三、位运算符

1.包括

2.注意

四、关系运算符

1.包括

2.注意

五、三目运算符(条件运算符)

六、赋值运算符

七、运算符优先级


一、算数运算符

1.包括

  • +加
  • -减
  • *乘
  • /除
  • %取余
  • ++加加
  • --减减

其中加减乘除相信不用做过多介绍,“加加”“减减”是一个类型的,因此下面我们对除法运算,取余,加加做介绍:

2./整除

(1)算法规则

C语言当中的除法,整数相除,结果向下取整,这我们需要记住,以后无论是计算还是编码过程中都是很重要的一环。

(2)如何显示小数

他是取整,那我们如何能让他显示小数呢?

可能有同学在这里想到,如果定义一个浮点型常量,不就可以显示小数了吗?

那我们来实验一下,看看是否正确?

#include<stdio.h>
int main(int argc, char const *argv[])
{
    float a=5/2;
    printf("%f\n",a);
    return 0;
}

结果:

8cc8f583e0c3494a96c07a60e1d790d4.png

事实可见,即使定义了浮点型,输出格式也为%f,但是他带的小数全是零,因此还是取整。

下面我给出两种方法:

方法一:仍然需要定义浮点型,在运算式中不让两个整数参与运算,将其一改为小数

#include<stdio.h>
int main(int argc, char const *argv[])
{
    float a=5/2.0;
    printf("%f\n",a);
    return 0;
}

ed3a7e2b04b541e599e62e6cbd0a782b.png

方法二:强制转换为小数,具体应用请看代码

#include<stdio.h>
int main(int argc, char const *argv[])
{
    float a=(float)5/2;
    printf("%f\n",a);
    return 0;
}

8dc4ab680bbf40d78be4363493070cac.png

注意第三行代码,此为强制转换,但只在这一行有效

3.%取余

注意:只能用于整数!

4.++加加

分为三种情况,这里很重要,一定要记住!

(1)独立成句时:

无先后顺序,不管++在前(++a)还是在后(a++),其意义不变,可以理解为a=a+1;

(2)赋值运算中:

有先后顺序

=a++    加加在后=++a        加加在前
先算等号再算加号先算加号再算等号

(3)打印语句中:

有先后顺序

a++++a
先打印再加先加再打印

小伙伴们应该可以看出来就算有先后顺序,他也是有一定规律的,++在a前,无论是赋值运算还是打印语句,都是先执行a=a+1,++在后,在这两个语句里也是一样的顺序。

二、逻辑运算符

1.包括

&&逻辑与||逻辑或!逻辑非
全真则真,一假则假
一真则真,全假则假
非真则假,非假即真

2.截断法则

逻辑与运算中:前边表达式结果为假,后边表达式不再执行,直接返回假

逻辑或运算中:前边表达式结果为真,后边表达式不再执行,直接返回真

三、位运算符

是针对于二进制01的运算

1.包括

&|^~
位与位或异或取反
全1则1,有0则0
有1则1,全0则0
相同为0,不同为1
1---》0      0---》1

2.注意

由于整数在计算机中以补码的二进制形式进行存储,在进行位运算时需要将原码转换成补码,运算完以后再转换为原码才为结果。我们把理论放在下面,然后用一个例子来说明:

4710317a9b8a4aa881f7e64127263652.png

先看代码以及运行结果:

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int a= 5;
    int b = ~a;
    printf("%d\n",b);
    return 0;
}

35430260febf41f0b1d9d96e27cee0f6.png

我们可以看到对五取反的结果为-6,为什么呢?

下面我们给出分析步骤帮助理解:

83b98ed723944e1aa2fbe882197552aa.png

下面的几种运算符已非常简单,我们做简单介绍,理解较为容易

四、关系运算符

1.包括

>  <  >=  <=  ==  !=

2.注意

=    为赋值,将右边的值赋给左边

==    为等于

3<x<9错误,x>3&&x<9正确

五、三目运算符(条件运算符)

表达式1?表达式2:表达式3;

判断表达式1是否成立,成立会执行表达式2;否则执行表达式3.

六、赋值运算符

包括+=、-=、*=、/=、%=

很容易理解,举一反三即可:a+=1------>a=a+1

七、运算符优先级

由高到低依次为:

单目运算符:! ~ ++  --

算术运算符:*  /  +  -   %

移位运算符:<< >>

关系运算符:>   >=  <  <=  ==  !=

位与运算符:&

异或运算符:^ |

逻辑运算符:&&   ||

条件运算符:? :

赋值运算符:=  +=  -=  *=  /=  %=

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值