满满的干货满满的干货😍前两天很忙,终于有空更新啦!
目录
一、算数运算符
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; }
结果:
事实可见,即使定义了浮点型,输出格式也为%f,但是他带的小数全是零,因此还是取整。
下面我给出两种方法:
方法一:仍然需要定义浮点型,在运算式中不让两个整数参与运算,将其一改为小数
#include<stdio.h> int main(int argc, char const *argv[]) { float a=5/2.0; printf("%f\n",a); return 0; }
方法二:强制转换为小数,具体应用请看代码
#include<stdio.h> int main(int argc, char const *argv[]) { float a=(float)5/2; printf("%f\n",a); return 0; }
注意第三行代码,此为强制转换,但只在这一行有效
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.注意
由于整数在计算机中以补码的二进制形式进行存储,在进行位运算时需要将原码转换成补码,运算完以后再转换为原码才为结果。我们把理论放在下面,然后用一个例子来说明:
先看代码以及运行结果:
#include<stdio.h> int main(int argc, char const *argv[]) { int a= 5; int b = ~a; printf("%d\n",b); return 0; }
我们可以看到对五取反的结果为-6,为什么呢?
下面我们给出分析步骤帮助理解:
下面的几种运算符已非常简单,我们做简单介绍,理解较为容易
四、关系运算符
1.包括
2.注意
= 为赋值,将右边的值赋给左边
== 为等于
3<x<9错误,x>3&&x<9正确
五、三目运算符(条件运算符)
判断表达式1是否成立,成立会执行表达式2;否则执行表达式3.
六、赋值运算符
包括+=、-=、*=、/=、%=
很容易理解,举一反三即可:a+=1------>a=a+1
七、运算符优先级
由高到低依次为:
单目运算符:! ~ ++ --
算术运算符:* / + - %
移位运算符:<< >>
关系运算符:> >= < <= == !=
位与运算符:&
异或运算符:^ |
逻辑运算符:&& ||
条件运算符:? :
赋值运算符:= += -= *= /= %=