目录

【飞郁2022新课程】17 - 操作符运算符

不知道有没有同学发现之前几节都是在讲关于数据

那么有的同学会问 计算机是怎么处理操作运算这些数据的呢?

好的 这节课就讲解C语言运算符

一、运算符

1.首先我们来看看C语言有哪几种运算符,先了解下

2.算数运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符(sizeof 三目运算符)

3.这些运算符是一种告诉编译器执行特定的数学或逻辑操作的符号。

4.是不是想迫切的知道这些运算符怎么使用呢?

5.下面我们先介绍算数运算符 关系运算符 逻辑运算符 ,其他运算符我们后面的章节再讲

二、算数运算符+ - * / % ++ –

2.1.+ 加号

1
2
3
4
int i1 = 1;
int i2 = 2;
int i3 = i1 + i2;
printf("i3=%d \n",i3);

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/1b2fceb57c63272a165fb2f54bb50c4b5f1baf5a.png@581w_101h_progressive-20211201154711941.png

2.2. - 减号

1
2
int i4 = i2 - i1;
printf("i4=%d \n", i4);

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/da41fc0a03c36b83e5c314293c32022fd4cefeb6.png@575w_98h_progressive-20211201154723637.png

2.3.* 乘号

1
2
int i5 = i2 * i1;
printf("i5=%d \n", i5);

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/0ed3ff87bdc997a0a0d581f088524bae3722a512.png@579w_114h_progressive-20211201154740642.png

2.4. / 除号

1
2
int i6 = i2 / i1;
printf("i6=%d \n", i6);

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/2ba1b227ccbe5a198f5750c1f97cc0d41eb1e1b3.png@576w_99h_progressive-20211201154746044.png

2.4.1 除数 不能为0

1
2
3
4
int i7 = 3;//2 +1
int i8 = 0;
int i9 = i7 / i8;//错误 因为除数不能为0
printf("i9=%d",i9);

我们编译观察下,是否报异常

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/4b27056568cbc0cb3e690099dbda53db42ec9891.png@593w_248h_progressive-20211201154753310.png

发现会报错, 因为除数不能为0

2.4.2 注意类型会影响到结果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
//int类型
int i7 = 3;//2 +1
int i8 = 2;
int i10 = i7 / i8;    //1.5
printf("i10=%d \n", i10);//1
//float类型
float f7 = 3;
float f8 = 2;
float f10 = f7 / f8;   //1.5
printf("f10=%f \n", f10);//1.5

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/6d0e20bddd3d7e9f81fb9332a48e7ec616945ebf.png@579w_132h_progressive.png

2.5. % 取余数

1
2
int i11 = i7 % i8;
printf("i11=%d \n", i11);

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/61f6d32ed6ba22001348f89bef0c583cb2091a2a.png@581w_107h_progressive-20211201154808240.png

2.6.++ 自加1

1
2
3
4
int i1=1;
printf("前 i1=%d \n", i1);
i1++;// i1=i1+1;
printf("后 i1=%d \n", i1);

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/3cf96a2f621d4a7a2cf0127f9c10a7afa39a8d70.png@585w_125h_progressive-20211201154816875.png

2.7. – 自减1

1
2
3
4
int i2=1;
printf("前 i2=%d \n", i2);
i2--;// i1=i2-1;
printf("后 i2=%d \n", i2);

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/add9e93ab9d4adc231004551f72090cfd40d114c.png@582w_123h_progressive-20211201154826842.png

三、关系运算符== != > >= < <=

3.1 == 等于 = 赋值 ==等于

3.2 != 不等于

3.3 > 大于

3.4 >= 大于等于

3.5 < 小于

3.6 <= 小于等于

3.7 例如

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
int i13 = 9;
int i14 = 10;
if (i13 == i14)// 相等 返回真 否则返回假
{
 //执行这里
 printf("i13 等于 i14 \n");
}
else//i13 != i14
{
 printf("i13 不等于 i14 \n");
 if(i13 > 14)
 {
  //执行这里
 printf("i13 大于 i14 \n");
 }
 else if(i13 < 14)
 {
 //执行这里
 printf("i13 大于 i14 \n");
 }
}

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/4c973357d2e697794b91913cd1998af728d6d5ac.png@576w_123h_progressive-20211201154848590.png

备注:

if else if 是用来判断表达式的真假,用于流程控制,这个后面我们会讲解.

四、逻辑运算符&& ||

4.1 && 与 同真 结果为真 否则为假

4.2 || 或 有一个为真 结果就为真

4.3 ! 反 真变假 假变成真

1
2
3
4
5
BOOL b1 = FALSE;
BOOL b2 = FALSE;
printf("!b1为:%d\n",!b1);
printf("b1 || b2 为:%d\n",b1 || b2);
printf("b1 && b2 为:%d\n",b1 && b2);

https://cdn.jsdelivr.net/gh/xinqinew/pic@main/img/f94cc9f174bde47052a1583170b25ae72e060629.png@579w_146h_progressive-20211201154859508.png