C语言入门class_3

目录

1、变量

① 声明和定义

注意:良好的编程习惯:变量在创建的时候就给他一个初始值吗,不知道的话就给0。

②全局变量的局部变量

全局变量的作用区域是整个程序

局部变量的作用区域是代码块

注意:当全局变量的局部变量同名的时候,以局部变量优先

补充:全局变量和局部变量的存储位置不同

全局变量: 存储在静态存储区中。

局部变量: 存储在栈内存中。

2、算数操作符

① + -

ps:双目操作符

② * /

整除

非整除:小数点后全部舍弃,不是四舍五入 

ps:类型升级

③ %

负数取模

3、赋值操作符

①=

②连续赋值

③复合赋值

4、单目操作符

①++ 自增

前置++:先加1,再使用

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

②--自减

前置--:先减1,再使用

后置--:先使用,再减1

题目1

题目2

③+ 正号

④- 负号

5、强制类型转换


1、变量

变量,顾名思义就是变化的量,在生活中有很多变化的量,温度、年龄、分数等等。同样的在C语言中,我们也离不开变量。在C语言中,变量用于存储和表示变化的数据的标识符,每一个变量都有一个特定的数据类型,决定他们存储的数据类型,以及占用内存空间的大小。

① 声明和定义

在C语言中如果我们想要引入一个变量,来帮助我们计算,我们首先需要申明它,简单来说就是告诉编译器,某某某,它是一个变量,后面看见它。你别不认识了。然后是定义,定义就是给它分配一个内存空间来存储变量。

声明的基本格式是:数据类型+变量名,比如

int age :告诉编译器,age 是一个变量,类型是int

定义我们一般采用给变量初始化来操作,一般与声明同时进行,比如

int age=10 :这是一个定义,分配内存并将整数变量age初始化为10 

注意:良好的编程习惯:变量在创建的时候就给他一个初始值吗,不知道的话就给0。

②全局变量的局部变量

全局变量的作用区域是整个程序

全局变量在最开始(第一个大括号外面)就进行定义,作用于整个区域。

// 全局变量
int globalVar = 10;

void someFunction() {
    // 在任何地方都可以访问globalVar
    printf("%d\n", globalVar);
}

局部变量的作用区域是代码块

全局变量在代码块中进行定义,作用于代码块区域。

void someFunction() {
    // 局部变量
    int localVar = 5;

    // 只能在someFunction中访问localVar
    printf("%d\n", localVar);
}

注意:当全局变量的局部变量同名的时候,以局部变量优先

C语言入门class_3_第1张图片

这个程序的运行结果是10;

C语言入门class_3_第2张图片

补充:全局变量和局部变量的存储位置不同

全局变量: 存储在静态存储区中。

 它们在程序的整个生命周期内都存在,从程序启动到结束。全局变量在内存中的位置是固定的,不会随着函数的调用而改变。


局部变量: 存储在栈内存中。

每次进入定义变量的代码块(通常是函数)时,系统都会为局部变量分配内存,当退出该代码块时,分配给局部变量的内存将被释放。因此,局部变量的生命周期与其所在代码块的执行周期相对应。

2、算数操作符

计算机顾名思义可以用来做计算。在数学中,我们做计算最常用的想必就是加减乘除了吧,同样的在计算机中也能进行这些运算,C语言怎么进行加减乘除运算呢,它提供了一系列的操作符。其中有一些操作符就是算术操作符,它包含

+ 加法,- 减法,*  乘法,/ 除法,% 取模(它的含义及用法后面再说)

① + -

主要用来进行加法计算

C语言入门class_3_第3张图片

C语言入门class_3_第4张图片

ps:双目操作符

这里我们讲一下,双目运算符的概念,对于a+b,+称为操作符;a、b 称为操作数,因为加号

C语言入门class_3_第5张图片

② * /

C语言中乘法是 *  ,C语言中除是   /  

C语言入门class_3_第6张图片

整除

如果a/b 能够整除,我们不难想到它的结果,比如6/3=2,写代码验证一下:

C语言入门class_3_第7张图片

与我们的猜想一致,那如果是小数呢

非整除:小数点后全部舍弃,不是四舍五入 

6/4按照数学来说是1.5,但是在c语言中,如果你打印整型,则小数点后的数全部舍弃,为1

C语言入门class_3_第8张图片

如果我们想要得到小数,该怎么办呢

在数据类型中,我们知道,小数是浮点数,那我们把c 的类型改成float,可以吗,来实验一下

C语言入门class_3_第9张图片

错的!!!

C语言中,整型相除只能得到整型,就是把c的类型改成浮点数,也是把1变成了浮点数,正如结果中写的那样。

那我们该怎么办呢,将a或者b其中一个变成浮点数即可,看下面的代码:

C语言入门class_3_第10张图片

至于后面这么多零,不想要怎么办,在学printf 函数的时候会详细介绍。

ps:类型升级

因此,如果我们需要得到浮点数结果时,我们只要将其中一个运算数改成浮点数即可,这种操作也被称为:类型升级——当整型和浮点型混合运算时,整数会被自动提升为浮点数,以确保保留小数部分。

③ %

取模运算符,返回整除以后得余数。取模运算只适用于整数。

比如6%4 相当于6整除4后的余数,余数是2 所以输出的是2,写代码验证一下:

C语言入门class_3_第11张图片

如果刚好整除呢,那余数就是0,因此输出0,写代码验证一下:

C语言入门class_3_第12张图片

负数取模

负数取模,结果的正负号由第一个运算数的正负号决定。

C语言入门class_3_第13张图片

3、赋值操作符

①=

在我们刚创建一个变量的时候,我们给它一个值叫做初始化,当我们初始化以后再给它一个值叫做赋值,赋值操作符是=

C语言入门class_3_第14张图片

②连续赋值

比如我们可能会见到如下的代码

C语言入门class_3_第15张图片

怎么理解c=b=a+3;

从右往左,依次赋值,首先将a+3的值赋值给b,b变成了8,然后再把b的值赋值给c,c变成8;

所以,输入a、b、c的值应该分别为 5、8、8。

C语言入门class_3_第16张图片

与我们想的一致。

由于连续赋值不便于理解,书写是最好不要这样写。

③复合赋值

在我们写代码的时候,可能会进行一些自加、自减等的操作,这里我们可以写成复合赋值。

首先解释一下自加自减,当我们想要把a+3的值,重新赋值给a时,这种操作就被称为自加,反之,当我们想要把a-3的值,重新赋值给a时,这种操作就被称为减。

代码如下:

C语言入门class_3_第17张图片

其实我们还可以这样写

a+=3,这就是复合赋值;

C语言入门class_3_第18张图片除此以外还有   -=   *=     /=   %=

4、单目操作符

无论是算数操作符还是赋值操作符都是双目操作符,除了双目操作符以外还有单目操作符,顾名思义,只有一个操作数,比如:++,--,+(正),-(负)。

①++ 自增

前置++:先加1,再使用

C语言入门class_3_第19张图片

它的计算方法是,先将a+1,

C语言入门class_3_第20张图片

其实我们也可以把代码转化成如下的样子,便于我们理解:

C语言入门class_3_第21张图片

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

C语言入门class_3_第22张图片

计算方法,先使用a当前的值进行计算,然后再把a+1;

C语言入门class_3_第23张图片

其实我们也可以把代码转化成如下的样子,便于我们理解:

C语言入门class_3_第24张图片


 

②--自减

前置--:先减1,再使用

C语言入门class_3_第25张图片

也可以转化,转化方式与自增类似,就不再赘述了

后置--:先使用,再减1

C语言入门class_3_第26张图片

 其实对于初学者而言搞懂他们并不容易,我们再做几个题目分析一下

题目1

C语言入门class_3_第27张图片

我们来一步步进行分析:

C语言入门class_3_第28张图片

编译,显示结果:

C语言入门class_3_第29张图片

题目2

C语言入门class_3_第30张图片

分析一下

C语言入门class_3_第31张图片

编译,显示结果

C语言入门class_3_第32张图片

③+ 正号

一个数加上+ 号还是他本身,没什么影响

C语言入门class_3_第33张图片

C语言入门class_3_第34张图片

④- 负号

一个数加上- 号变成它的相反数

C语言入门class_3_第35张图片

C语言入门class_3_第36张图片

5、强制类型转换

我们知道,在定义变量的时候,我们用的方法是 变量类型 +变量的方法,但是如果我们定义变量的时候,变量类型与变量本身不匹配呢,比如:

int a=0;

a=3.5;

我们声明变量a是整型变量,但是我们给他赋值的时候,用的是3.5,这个时候,程序会报错

C语言入门class_3_第37张图片

但是我就是想让3.5变成整型变量怎么办呢,可以用强制类型转换

(数据类型) 数据   

将数据强制转化成前面的数据类型

再试一次

C语言入门class_3_第38张图片

C语言入门class_3_第39张图片

此时浮点数3.5已经被转化为整型,后面的小数位被全部舍弃,并不遵循四舍五入。

你可能感兴趣的:(c语言,开发语言)