本节目标:
1.常量的定义和种类。
2.变量与常变量。
①区别与差别
②格式
③需定义后才可使用
④数据类型
⑤变量名命名规则
⑥变量初始化
⑦作用域
⑧类型转换
常量
由上节课我们知道LED_BUILTIN等同于13,所以上面的程序是等价的。
而这边的数字13被我们成为常量。
常量是固定值(又叫字面量),在程序执行期间不会改变的量,是固定的值。
常量可以是任何的基本数据类型,如:整数常量、实型常量、字符常量和字符串常量。
变量与常变量的区别
实际上,我们在编写程序的时候,对引脚的使用,一般不会直接使用常量,更喜欢先定义一个变量(或者常变量)来表示对应的引脚号。为什么呢?
理由:
①变量需要定义变量名,有变量名(见名知意)就能直观的看出对应引脚连接的是哪个元器件。
②当需要更改元器件引脚号时,可以实现一改多改,减少漏改、少改的情况,修改也更加方便。
故示例程序可以修改为如下图所示:
问题一:变量与常变量定义的区别?
变量: volatile int redLedPin = 13;
volatile可以省略。
常变量:const int redLedPin = 13;
const 不可省略,省略就分不清与变量的区别。
问题二:变量与常变量真正的差别?
变量:在程序的过程中有可能会发生变化。
常变量:在程序的过程中绝对不会发生变化,一直保持初始化的值。
变量的知识点:
变量:一个有名字的,具有具体属性的一个存储单元。
在这里我们将计算机的存储空间比喻为一栋大的存储仓房。不同的变量就是在这栋大仓房划分不同的房间。
根据不同的物品的类别(变量的数据类型),分配不同空间大小的房间(且该房间只能存储对应的物品,不能存储其他类别的物品)。
知识点一:变量的定义格式
知识点二:变量必须先定义才能使用
理由:因为变量就像是一个房间,如果不先设置房间号的话,你能直接进入正确房间么?很明显不行,所以我们必须要先把变量定义好,才可以在使用对应的变量。
知识点三:变量的数据类型
数据类型是对变量的修饰,前面我们举了个例子,变量就是大仓房中房间,而每个房间能存储的物品类型和房间大小是不相同的,而数据类型就是用来固定大小和存储的类别。
C语言中有哪些数据类型呢?
在这里我们看到了一个从没有见过的名称:字节数。
为此,我们还需要了解一下计算机的存储容量的计量单位。
最小的计量单位:bit(又名“比特”,“位”,b),一个比特就代表一个0或1(即二进制),通常数据传输都是以bit为传输单位的。
最常用的计量单位:Byte(又名“字节”,B),是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位比特,即它包含八位的二进制数,通常数据存储是以“字节”(Byte)为单位。
知识点四:变量名的命名规则
①只包含英文字母,数字,下划线“_”。
②其中数字不能作为开头。
③不能与系统关键字重名。
④变量名区分大小写。
⑤不同变量不能使用同一个名字。
⑥采用驼峰式(首个单词字母小写,之后单词首个字母大写)
⑦有含义的名字,见名知意。
注意:
⑥、⑦非定性要求
知识点五:变量的初始值可不赋值。
知识点六:变量的作用域
我们知道变量声明就类似这样的一个大仓房给物品分类存储,但是我们知道,物品不单单要储存,还要拿出去卖,而这样的卖家呢?
我们根据他们经商的范围分成两类:一类是大的经销商(可以在世界各地进行买卖),一类是小商店(只能在一些固定的地方进行买卖)。
变量也是这样,我们根据他们作用域(作用的范围)分成两类:全局变量和局部变量。即:变量的作用域(变量有效性的范围,与变量定义的位置密切相关,作用域是从空间这个角度来描述变量的)。
1.局部变量:在函数内部定义的变量,只能在定义它的函数内使用,其他函数不能使用。
2.全局变量:从定义点开始直到程序文件结束的变量,在程序的整个运行过程中,都占用存储单元。在一个函数中改变全局变量的值,其他函数可以共享,全局变量相应于起到函数间传递数据的作用。
知识点七:算数转换与强制类型转换。
常用的算术转换是隐式地把值强制转换为相同的类型。编译器首先执行整数提升,如果操作数类型不同,则它们会被转换为下列层次中出现的最高层次的类型。
强制类型转换是把变量从一种类型转换为另一种数据类型。
例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。您可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型,如下所示: