【菜鸟逆袭记】之初识操作符

简介: 【菜鸟逆袭记】之初识操作符

1.算术操作符

4dcf8342ed064001bcc27244f9dfded7.png

(1)前置和后置

这里 + 和 - 都是字面意思,没啥好讲的。我们上点难度—>区分一下前置 + +(- -)和后置+ +(- -)的不同

#include<stdio.h>
int main()
{
  int a = 100;
  //int b = a++;  //后置++
  int b = ++a;  //前置++
  printf("a=%d b=%d", a,b);
  return 0;
}

运行结果:

前置

73d4a82e984b40cfa9de0366fbfd3911.png

后置

388c6fce2afd4d719e4d507fe448fad8.png


怎么样,结果跟你想的一样吗。接下来让我们来分析一下产生这种差异的原因:


int b=++a=(++a);

a=a+1; b=a;

前置++:先++,后使用

int b=a++=(a++);

b=a; a++;

后置++:先使用,后++


前置- -和后置- -的底层逻辑是一样的。那么你们可以当做列子拿来练练手


(2)取膜(%)和除法(/)

日常生活中,我们用的乘法(×)和除法(÷)在C语言中可不是这样的哦。C语言的乘法是C语言的乘法是 * ,除号是 / ,这一点一定要牢记,不要搞混哦。

知道了它们的用法,接下来讲一讲注意的地方:


1./ 除号的两端如果都是整数,执行的是整数除法—保留整数部分

2./ 除号的两端至少一个树是浮点数,才执行的是浮点数的除法—日常生活中的除法

3.取膜–顾名思义就是取余数,它的两端操作数必须都为整数才可以


接下来就上代码看看:

1.

0d3791603485446b8b94f5f0190ae20c.png

运行结果:

71452803fd0d4fcf962e31c3a05b5c27.png

结论:

进行整数除法,无论如何结果都是整数部分,用浮点数来接收都不行


2.

cb54c902d7184ebbb75ee66d896f0b47.png

运行结果:

9620e4fa46814cdcaf42ced59fcbd474.png

结论:

两端至少有一个浮点数类型的数据,那么执行的就是浮点数除法


3.

2eb80f86710f4e10af15097451afbee1.png

运行结果:

0b15cb7c5c99447ea8406ed71940a24d.png

结论:

取膜运算的两端操作数必须都为整形类型


2.移位操作符

9fb835f74b184824aa184813045b40c1.png

这里涉及二进制,以后会讲的。持续关注我哦


3.位操作符

69bbfc1f48c549109165437241b07304.png

这里涉及二进制,以后会讲的。持续关注我哦


4.赋值操作符

a + = b <---->a = a + b

a - = b <----->a = a - b

a * = b <----->a = a * b

a / = b <----->a = a / b


注意:


=(赋值操作符)和= =(逻辑操作符)不一样-----以a = b 和 a = = b为例子解释一下

-----前者是把 b 的值赋给了 a ;后者是 a 和 b 相等


5.单目操作符

c085624f425e4de4a41bd254661e5555.png

补充:

在C语言中,判断真假的方法是:0 为假,非0为真(一般是1),记住:这里是非0,负数也是真


(1)逻辑反操作( !)

逻辑反操作主要是用来打印条件为假的内容


如果想的打印真的内容-----if(a)

如果想的打印假的内容-----if(!a)

上代码:

a4add67fb29749bea31b9f2a723f8033.png

运行结果:

76e96697a5e845c29cb884a057219329.png


(2)sizeof

这里需要把sizeof 和strlen两个比较来看:


1.sizeof—操作符无须引头文件—计算数据及其类型所占用空间的大小,单位是字节

2.strlen—库函数,头文件是<string.h>—计算字符串中 \0 前面的字符个数,单位是个

cad49cac09294647a844f85c7a7cd4f8.png


这里,我们不难发现:

当同时计算一个字符串(hello)的时候,strlen的结果是 5 ,没有算上 \0;而sizeof 的结果是 6 ,算上了 \0 所占用的空间


(3)强制类型转化

基本构成:(目标类型)变量

注意:( )不能少

bdfc131dc1354a24b72baeaaab7f727b.png


运行结果:

2a7d3a4188a84f388e2e9e5b397dfac7.png

结论:

如果一个浮点型的数据强制类型转化为整形—只取整数部分

6.关系操作符

a2af4d17327648dcaadc042b636614d6.png

这里重点前面都有讲过,可以翻上去看看


7.逻辑操作符

ce111e1176ba4be085b828b4dc61e088.png

&&------两边同时为真,才为真,其他都为假

2. ||------两边同时为假,才为假,其他全为真(这里翻过坑的)


8.条件操作符

216d772a82c341149cb5cdaf12057e72.png

注意:

别看是问号(?),其实是情况为真的输出(这里翻过墙)


我们用这个来实现一个求两个数的最大值:

95c3441351924473832ba9261370b9ce.png

运行结果:

e720570fb7dd48e5b8c3fde883b3f2f4.png

结论:

1.三目操作符跟 if self 的底层原理相似

2.基本构成:表达式1 ?表达式2 :表达式3

3.表达式2 相当于 if 成立后执行的语句;表达式3相当于 if 不成立 else 执行的语句


9.逗号表达式

这个我们以后再讲,记得持续关注我哦


10.下标引用、函数调用和结构成员

dbeb8d6926fc46c78c5e54d07d79d8b9.png

1.[ ]----用于数组

2.( )----函数调用

3.点(.)和 -> —用于结构体

这一部分的大多数内容详细讲解我都在【菜鸟逆袭记】之初识C语言中讲过,不清楚的小伙伴,可以移步去看一看


相关文章
|
5月前
|
C语言
王桂林C语言从放弃到入门课程
课程目标16天,每天6节课,每节40分钟课堂实录,带你征服C语言,让所有学过和没有学过C语言的人,或是正准备学习C语言的人,找到学习C语言的不二法门。适用人群所有学过和没有学过C语言的人,或是正准备学习C语言的人!
64 2
王桂林C语言从放弃到入门课程
|
4月前
|
Java 索引
杨老师课堂_Java教程第四篇之数组运用
杨老师课堂_Java教程第四篇之数组运用
37 0
|
4月前
|
Java
杨老师课堂_Java教程第五篇之函数运用
杨老师课堂_Java教程第五篇之函数运用
26 1
|
4月前
|
Java
杨老师课堂_Java教程第三篇之控制语句
杨老师课堂_Java教程第三篇之控制语句
26 1
|
4月前
|
Java
杨老师课堂_Java教程第六篇之引用数据类型_类的运用
杨老师课堂_Java教程第六篇之引用数据类型_类的运用
30 1
|
4月前
|
Java
杨老师课堂_Java教程第二篇之变量及运算符
杨老师课堂_Java教程第二篇之变量及运算符
16 0
|
程序员 C语言 C++
菜鸟逆袭记
由于C语言是基础,C生万物。作为初学者的我们,C语言是当前掌握的重点。
|
存储 C语言
菜鸟逆袭记之操作符详解
前言: 这一站与前面的 时空间有一定的联系,想了解更多内容请移步去看看
|
程序员 编译器 Serverless
【菜鸟逆袭记】之初识函数
在数学的学习过程中,我们经常与函数这个概念打交道。什么幂函数,指数函数…它们都有共同的基本结构:自变量,因变量,函数表达式。那么C语言中的函数也是这样吗?让我们通过这一站的学习,来了解了解C语言中的函数
菜鸟逆袭记之【初识C语言】
这一站,只是为了让我们大概的了解C语言,有些知识讲的不是特别深刻。不过,不要担心,我们这是一个连续节目。先入门,再精通。一上来讲的太难,就会导致从入门到放弃。