常量与变量定义理解(概念梳理篇01常量)
常量与变量定义理解(概念梳理篇01常量)很多时候,我们去理解一个概念时,往往会被抽象的描述弄得不知所云。这时,需要我们追其本质,与具体的表现结合起来理解,这样往往可以更加清晰和容易。接下来,严Sir将讲解自己对于常量和变量的理解,仅代表一家之言。作为初学者,看到这样的定义,顿时觉得头昏眼花,不知所云。什么叫不发生改变?什么叫发生改变?要花一定的时间,才能明白和弄清。那么,什么是常量,什么是变量呢?对于常量和变量的解释,很多书上是这样定义的:常量:程序运行的过程中,值不发生改变的量。变量:程序运行的过程中,值要发生改变的量。
跟着严Sir学编程正式开更,希望严Sir能用20年程序类课程教学经验,帮助更多的伙伴更加容易地学习和理解程序。在相关的文章当中,我更多的是根据自己理解来讲解,并且根据自己教学经验,对于重点和难点问题进行了生活化的处理,这样能让更多的人容易理解,同时也带来了学术表达上的严谨程度不足。欢迎大家阅读、点赞、转发,更喜欢大家批评指正!
这是概念梳理的第01篇文章。
数据是程序运行的基础。
数据当中有两大主角——常量和变量,这是任何一门程序设计语言都会涉及到的两个基本概念。
那么,什么是常量,什么是变量呢?
01 让人犯晕的定义
对于常量和变量的解释,很多书上是这样定义的:
常量:程序运行的过程中,值不发生改变的量。变量:程序运行的过程中,值要发生改变的量。
作为初学者,看到这样的定义,顿时觉得头昏眼花,不知所云。什么叫不发生改变?什么叫发生改变?要花一定的时间,才能明白和弄清。
02 换种思路理解
很多时候,我们去理解一个概念时,往往会被抽象的描述弄得不知所云。这时,需要我们追其本质,与具体的表现结合起来理解,这样往往可以更加清晰和容易。接下来,严Sir将讲解自己对于常量和变量的理解,仅代表一家之言。
(一)常量
1.含义:所谓常量,就是常值,就是值不会发生改变的具体数据。
如:在数学上,大家看到π这个符号时,心里面就知道它代表的的圆周率,具体的值为3.14(保留2位小数),不管在任何地方,这个值是不会发生改变的。于是,我们称π是数学上的一个常量。
那么,在程序当中,你看到的类似于 123、4.56这样的值,就被我们称为常量。因为一旦写入到程序当中以后,这些值是不可以再发生改变了。
2.分类
常量可以分为直接常量和符号常量两类。
①直接常量是指:本身就是一个具体的数值。
如C语言当中,直接常量大体可以分为四类:
整型常量(代表的是一个整数):56、789、1234
实型常量(代表的是一个小数):1.23、35.6、0.12
字符常量(代表一个任意字符):‘A'、'B'、'C'
字符串常量(代表若干个任意字符):“1234”、“this”、“book”
②符号常量是指:用一个符号代表一个具体的、不可改变的值。
前面所讲,在数学上用π这个符号代表的的圆周率,具体的值为3.1415(保留4位小数)。如果在程序当中,想声明一个符号来代表值为3.1415,就需要用到符号常量。当然,聪明的你一定会想到,符号常量不会自动出现的,需要你自己来定义。符号常量的声明方法,不同的程序语言有差异,如果是在C语言当中,你可以用宏命令来声明:
#define PI 3.1415
上面这条命令被称为预处命令。它的作用是就是定义了一个符号常量PI,用它来表示一个不可以改变量的值3.1415 。
(二)变量
1.含义:所谓变量,就是一个存放可变数据的空间。
按照这样的理解,我们先到生活当中去寻找变量。
上图中,可乐瓶,它是用来存放可乐的空间,于是可乐瓶就是一个变量;粉笔盒,它是用来存放粉笔的空间,于是粉笔盒也是一个变量;水杯,它是用来存放水的空间,于是水杯也是一个变量。
2.变量从何而来?
这是一个值得思考的问题,它涉及到一些本质问题。
先问:可乐瓶从何而来?你肯定会说:可乐瓶生产厂家制造出来的。这样的问答,对于粉笔和水杯同样的是适用的。
于是,我们是不是可以得出这样的一个结论:要使用一个变量,首先要把变量定义出来了。
3.如何定义变量?
可乐瓶、粉笔盒、水杯是同样的存储空间吗?显然不是的。既然可乐瓶、粉笔盒、水杯是变量,而它们的类型是不一样,这样的差异是在制造它们时就决定的。于是定义变量就显得特别重要了。在这里,我以C语言为例来讲解。
变量定义的格式:变量类型 变量名;
还是结合生活当中的例子来理解:
第1条语句可以这样理解:制造一只猫,名字叫小花。于是,我们的脑海里面就会产生一只名字叫小花的猫,它具备了猫所有的特性,比如喜欢吃老鼠,因为你是属于猫这种类型。
第2条语句可以这样理解:制造一只猪,名字叫淘淘。于是,一只名字叫淘淘的猪就产生了,它具备了猪所有的特性,因为你是属于猪这种类型。
于是,我们可以知道,在定义变量时,我们决定了变量的类型和变量的名字,而变量的类型决定了变量能存放何种类型的数据。
如在C当中有三条语句:
int a;
float b;
char c;
int a;表示定义了一个整型的变量,名字叫a,于是a变量里面以后存放整型数据。
float b; 表示定义了一个实型变量,名字叫b,于是b变量里面以后存放实型数据。
char c;表示定义了一个字符型变量,名字叫c,于是c变量里面以后存放字符型数据。
4.变量到底什么在变?
变量定义好了以后,它的类型和名字是不可能发生改变的,那么它到底在改变什么呢?
上图是一个水杯的5连拍。大家很容易发现,水杯的是不会发生改变,但是水杯里面存放的水是可以发生改变的。水杯里面存放的水,就是一个变量里面存放的值,我们把它称为变量值。
到此,我们发现,一个变量具有3个元素,分别是变量类型、变量名字、变量值。
变量定义后,变量类型和变量名是不会发生改变的,变量能改变的只能是变量值。
int a;
a=3;
a=4;
a=5;
上面有4条语句,第1条语句是在定义一个整型变量,名字叫a。
第2条语句是将3存放到a变量里面。
第3条语句是将4存放到a变量里面。
第4条语句是将5存放到a变量里面。
由此可见,a变量里面装的值在不停地发生改变,这就是变量。
03 总结
本文当中,讲解了对于常量和变量的理解:
常量:就是常值,就是值不会发生改变的具体数据。
变量:就是一个存放可变数据的空间。它有三个元素:变量类型、变量名、变量值,变量改变的是变量值。
04 思考
第一题
#define PI 3.1415
............
............
............
PI=3.14; //请问:这条语句会不会出错?原因?
第二题
int a;
a=3;
a=4;
a=5;
请问:执行完这些语句后,a里面到底存放的是什么内容?
欢迎大家留言和讨论。
下一篇文章:变量到底是在哪里产生的?