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);
}

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

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

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

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

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


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

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

2、算数操作符

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

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

① + -

主要用来进行加法计算

ps:双目操作符

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

② * /

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

整除

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

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

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

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

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

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

错的!!!

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

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

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

ps:类型升级

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

③ %

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

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

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

负数取模

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

3、赋值操作符

①=

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

②连续赋值

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

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

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

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

与我们想的一致。

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

③复合赋值

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

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

代码如下:

其实我们还可以这样写

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

除此以外还有   -=   *=     /=   %=

4、单目操作符

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

①++ 自增

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

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

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

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

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

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


 

②--自减

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

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

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

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

题目1

我们来一步步进行分析:

编译,显示结果:

题目2

分析一下

编译,显示结果

③+ 正号

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

④- 负号

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

5、强制类型转换

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

int a=0;

a=3.5;

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

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

(数据类型) 数据   

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

再试一次

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值