符号常量和变量有什么区别_“变量”和“常量”,计算机程序中的那个“量”是什么“量”...

石头这个学期上了一门大一的“C语言”课程,这是石头第二次上这门课了,我决定把这门课中学生比较容易混淆的、不好理解的概念用文章的形式记录下来。

6093361d6560c7529703983809582c3a.png

无论是什么量,最终归为0 1

01 变量与常量中的“变”和“常”

数学概念解释的“常”和“变”

常量与变量是数学中反映事物量的一对范畴。常量亦称“常数”,是反映事物相对静止状态的量;变量亦称“变数”,是反映事物运动变化状态的量。

石头最佩服的就是数学家,可以把纷繁复杂的世间万物用很简短的语言抽象成概念。不过呢,抽象成概念之后的定理、公里、定义等等呢就会变得抽象。我们政治老师教过,我们要在实践活动中抽象出理论,然后再用理论去指导我们更好地实践活动,这才是我们进行理论学习的终极要义。

只要稍微学过马克思主义哲学的同学都会知道,运动是绝对的、静止是相对的。放到这里来说,就是“变”是绝对的,“常”是相对的。

我们通过一个例子来说明一下,我们可以使用公式:S=πr²来计算圆的面积。其中,这个π就是一个常数,无论多大的圆都是用这一个π;而这个r呢就是一个变数,它的大小也就决定了圆的大小。但是呢,当我们要确切的去计算某个圆的面积时,我们π的取值精度又有不同。

我们身边关于“常”和“变”的例子特别多。比如一个男同学假设叫小明,可能他这一生都叫小明、也有可能他这一生都是男的;但是他的身高、体重这些就会不停的变化。

你只有确实掌握了“常”和“变”的要义,你在进行计算机编程的时候才知道哪些量该用常量、哪些该用变量。

计算机语言的“常”和“变”

以C语言为例,常量分直接常量和符号常量两种。以下面这段代码为例

#define COEF 0.5 //期中成绩占比

int main()

{

float Score, MidScore, FinalScore;

/*下面这一行中,COEF就是符号常量,而 1 就是直接常量*/

Score = COEF*MidScore + (1-COEF)*FinalScore;

return 0;

}

在这段代码中呢,是想用期中考试的成绩和期末考试成绩算出总评成绩。我需要知道期中成绩在总评成绩的占比,然后用1减去它就是期末的占比。而期中成绩的占比我用一个符号常量来表示。

到了后面呢,我又定义了总评成绩、期中成绩、期末成绩三个变量,用来在计算每个学生的总评成绩的时候暂时存放该学生的总评、期中、期末成绩。

在这里,我们就可以看出来整个班的期中、期末成绩在总评成绩中的占比可能是不变的,如果我要调整这个占比那么我只需要改一下符号常量的值就行了,方便快捷而且程序的可读性好很多。

也就是说,计算机程序中的常量呢不会随着程序的执行而变化;而变量则随时都有可能变化。如下图所示,我们在定义变量的时候,只是申请了一个有名字的空间,程序在运行的过程中可能会放入符合类型的不同值。

dc95ea3ebb841edd7f8a3603569d3b6a.png

给定一个存储空间但里面的内容会随着时间的推移变化

02 变量与常量中的“量”

计算机语言中的量呢,其实可以理解为用来存放一些东西的空间。

程序在向计算机申请使用这个区间的时候呢,要先告诉计算机我这个区间准备用来存放什么类型的东西,然后计算机会根据类型给它分配不同大小的区间,而且这个区间呢很可能还有个名字(符号)来代指。

这个区间里的内容,在程序运行的过程中可能变也可能不变,对应的就是常量或者变量。

0aa06eb8e571c67ee09d0b2f916f1428.png

C语言的数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值