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

无论是什么量,最终归为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减去它就是期末的占比。而期中成绩的占比我用一个符号常量来表示。

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

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

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

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

02 变量与常量中的“量”

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

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

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

C语言的数据类型

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

  1. mysql declare与set的区别_浅谈MySQL存储过程中declare和set定义变量的区别

    在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量. 1.declare定义的变量类似java类中的局部变量,仅 ...

  2. python变量作用域和生存期_变量的生存期和作用域

    变量的生存期和作用域是个很基础但又很重要的问题,所以我打算写几百字重温一下. 变量的生存期是指变量在什么时间段存在. 变量的作用域是指变量在哪些代码块中能够被访问. 一般来说变量生存期包含作用域.即在 ...

  3. python输出变量的值使用_如何使用python语言中的输入和输出打印对应的值

    在python设计语言中,输入使用input()方法,而输出使用print()方法:其中,输出方法可以拼接变量,如字符串.数值类型的.下面利用几个实例说明python语言中的输入和输出的用法,操作如下 ...

  4. mysql检索有什么区别_检索行时,MySQL中AND或OR运算符有什么区别?

    AND,OR之间的区别在于,AND评估两个条件都必须为真,以使整体条件为真.OR求一个条件必须为真,以使整体条件为真. 让我们创建一个表-mysql> create table demo70 − ...

  5. python flask与django的区别_真正搞明白Python中Django和Flask框架的区别

    Django和Flask的区别 1.形象类比 如果Django类似于精装修的房子,自带豪华家具.非常齐全功能强大的家电,什么都有了,拎包入住即可,十分方便. 而Flask类似于毛坯房,自己想把房子装修 ...

  6. 背景图层和普通图层的区别_新手如何在PS中创建图层?不容错过的7种方法,你值得学习...

    昨天跟小波一起认识了PS图层的童鞋应该已经对它不陌生了,那么在了解之后就要来实践操作,毕竟实践出真知嘛.那这一章就一起来学习在PS中创建图层吧. 在PS中,图层的创建方法有很多种,包括在"图 ...

  7. python中if和elif的区别_浅谈对python中if、elif、else的误解

    今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...

  8. python中分支语句elif与else的区别_浅谈对python中if、elif、else的误解

    今天下午在练习python时用了"if...if...else..."的分支结构,结果运行出来吓我一跳.原来我想当然的认为"if...if...else..." ...

  9. 工业物联网与物联网区别_企业可以从物联网中受益的7种方法

    工业物联网与物联网区别 IoT devices enable businesses to generate large volumes of valuable data. This real-time ...

最新文章

  1. PyTorch: 序列到序列模型(Seq2Seq)实现机器翻译实战
  2. Android 6.0动态权限申请
  3. ORA-01994 故障一例
  4. 磁盘阵列简介---图片说明
  5. 交叉编译 FLTK1.3.0
  6. C++ 大话数据结构 09: 中缀表达式 转后缀表达式 计算器
  7. C++ STL 容器之queue
  8. 【剑指offer - C++/Java】9、变态跳台阶
  9. 面试官:重写 equals 时为什么一定要重写 hashCode?
  10. oracle杅擂踱阀葩,Oracle常用傻瓜问题1000问
  11. 【动态规划】P1018 线性dp:乘积最大
  12. thinkphp遗留问题
  13. 判断输入的年月日是否合法
  14. latext配置 vscode_VScode 配置为 LaTeX IDE
  15. python 前端开发_python和前端开发怎么抉择?
  16. 马斯克血洗推特!传机器学习裁员90%,团队直接解散
  17. U大师安装系统后,Chrome主页被7654导航劫持解决方法
  18. 1 PPT默认初始设置(主题颜色、撤回次数、自动保存、图片压缩、字体嵌入、多格式导出、参考线、默认字体、默认样式和清除占位符)
  19. ABP VNext学习日记30
  20. python发行版是什么意思_致 Python 初学者

热门文章

  1. python下timer定时器常用的两种实现方法
  2. 三种python序列类型
  3. Python列表的增删查改及常用操作
  4. python中json.load()、json.loads()、json.dump()、json.dumps()的区别
  5. python3中pip的安装、常见问题及万能解决方案。
  6. 计算机基础中怎么评价,浅谈职校计算机基础教学中的教学评价
  7. oracle每小时分组查询,Oracle 天内按小时分组查询有关问题
  8. ubuntu交叉编译x264报错:‘X264_VERSION’ undeclared(已解决)运行version.sh
  9. VS调试时怎么跳过for循环?
  10. 【car】买车时保险的坑