1. 常量和变量的概念
程序执行过程中其值不能发生改变的量叫做常量, 其值能发生改变的量叫做变量. 常量可以直接使用, 而变量则必须先定义后才能使用, 否则编译器会报错.
2. 常量和变量的命名规范
在介绍常量和变量的命名规范之前, 我们先了解一下什么是标识符和关键字.
1)标识符
标识符, 用来标识符号常量名, 变量名, 函数名, 数组名, 文件名, 类名, 对象名等. 简单的将就是大家取的名字~~ 有效标识符的构成规则如下:
1)第一个字符必须是字母 (大小写都行) 或下划线, 不能是数字;
2)后跟字母(大小写都行), 下划线或数字组成;
3)标识符中的大小写字母有区别. 如, 变量 sum,Sum,SUM 代表三个不同的变量;
4)不能与编译系统已经预定义的, 具有特殊用途的保留标识符 (即关键字) 同名. 比如, 不能将标识符命名 int,char,float,break,case,for,while,return 等等;
下面列出几个有效的标识符:
- teemo
- Garen
- move_name
- dj8023
- _temp
- i
- the_hero_is_Garen
下面列出几个无效的标识符:
- 8times // 第一个字符必须是字母 (大小写都行) 或下划线, 不能是数字.
- price/tea // 后跟字母(大小写都行), 下划线或数字组成,/ 不是属于之中.
- my name // 含有空格
- x+y // 包含了'+'号
- int //C 语言程序中的关键字
2)关键字
C 语言中具有特殊含义的英文单词, 通常用于构成语句, 存储数据, 定义数据类型等. 下面列出了 C 语言中的一些保留字. 这些保留字不能作为常量名, 变量名或其他标识符名称.
1)基本数据类型
int: 声明整数类型
float: 声明浮点型
double: 声明双精度浮点型
char: 声明字符类型
void: 空类型, 声明函数无返回值或无参数
2)流程控制
条件判断: if,else,switch,case,default 等
循环: while,do,for,break,continue
返回: return
在本节中, 先了解一下就行, 有很多不明白的关键字后面会讲到.
3)命名规范
首先, 必须是有效的标识符. 在这个基础上, 我们使用的命名最好能做到看名字就明白它表示什么. 如果要使用一个变量来表示 teemo 的血量, 我们可以将其命名为 teemo_hp 或者 teemoHp, 而不是随便的命名为 a 或者 b 之类的. 遇到两个或者更多的单词组成的名称, 我们通常用下划线字符将它们连接起来, 或者从第二单词开始将每一个单词的第一个字母大写.
还有一些程序员可能会在变量中加入描述变量类型或者内容的前缀. 例如, 可以将整型变量 teemoHp 命名为 nTeemoHp, 其中 n 表示整数值. 这样做的好处是在你遇到这个变量的时候, 可以很直接的知道这个变量的类型. 常用的几种前缀有: c(表示单个字符),p(表示指针)等. 另外, 常量的标识符习惯用大写字母表示, 变量的标识符习惯用小写字母表示. 单下划线打头的标识符一般代表标准数据库的变量, 双下划线打头的标识符一般代表编译器的变量.
关于命名, 想说的是, 命名可以根据自己的需要, 喜好和个人风格来使用, 但起码要保证一个程序里面的风格是一致性的. 在团队共同开发中, 则需要按照规范进行命名. 规范的命名不仅可以让自己以后看的明白, 也利于给团队其他人维护代码.
3. 常量
1)直接常量
直接常量又可以叫做字面常量, 通过数据来直接表现. 在 C 语言中, 编译器会自动根据字面常量的表示形式确定其类型. 例如:
y = x + 3;
在上面的程序中, 3 将会被编译器作为 int 类型的常量. 再例如:
y = x + 3.0;
3.0 是小数, 则会被编译器作为 float 类型的常量. 当然, 字符也有常量, 不过和整型常量不同, 字符常量必须使用单引号来进行表示. 字符常量是使用单引号括起来的一个字符, 不能是多个字符. 例如, 下面都是合法的字符常量:
'a','B','#','8'
需要强调的是只能是单引号, 并且只有一个字符, 字符可以是 ASCII 码中的任意字符. 如果数字被定义成字符常量的话, 就不能代表数字字面的量了. 如果参与运算, 它的值将会是对应的 ASCII 码. 比如上面的字符常量'8', 在 ASCII 码对应的值为 56. 这个时候参与运算, 比如加上 1, 将得到的整数值是 57.
2)符号常量
在 C 语言程序中, 还可以使用一个符号常量来代替常量. 使用符号常量有两个好处, 一个是如果需要修改常量的话, 只要修改定义符号常量的语句就行; 另一个好处, 使得程序中常量的含义更加清楚. 定义符号常量有两种方法:#define 宏定义和 const 语句定义. 在这里我就先不展开讲了, 大家过一眼就好了, 后面的教程会详细的讲解宏定义和 const 的应用.
4. 变量
在程序中, 我们会使用到各种变量. 当我们创建一个变量时, 就会在内存中开辟一些空间. 一般变量先声明, 然后初始化.
1)声明变量
C 语言中使用声明语句, 来声明一个变量, 指出存储类型并提供位置标签. C 语言中, 变量要求先声明后定义, 这样做的好处在于:
1. 确保后面引用的变量名和声明的一致, 减少了输入错误. 如声明了变量 teemo, 在后面引用时, 不小心输成了 timo, 编译器将会报错, 指示 timo 未声明.
2. 在声明变量时, 会指定变量的类型, 当进行运算的时候, 编译器就可以检查运算是否合法.
3. 编译器根据指定变量的类型分配内存.
声明变量的一般语法格式:
类型 变量名;
其中, 类型是数据类型的关键字, 比如说 int 表示整数类型, double 表示双精度浮点类型. 变量名则需要符合命名规范的标识符. 下面我们将会通过简单的程序, 来介绍如何声明变量. 比如说: 我们要声明一个变量表示提莫的血量. 在 C 语言中, 就可以表示:
- int teemoHp;
- float teemoAttack;
int 是一种数据类型, 表示是整数.
teemoHp 是一个标识符, 这里代表整数类型的血量.
; 表示一个语句结束.
我们从计算机的角度来讲, 第一条语句指出程序需要一个存储空间, 用这个内存来存储一个整数. 那么在 C 语言中, 写上这个声明语句, 程序就会将计算机的某一区域内存, 命名为 teemoHp, 并在这个内存中存放整数类型. teemoHp 这个标识符就是一个变量, 它代表 teemo 的血量. 这条语句创造了一个变量 teemoHp, 我们把这个过程叫做变量声明.
同类型的变量还可以在一个语句中同时声明多个变量, 各变量之间用逗号分隔开, 例如:
int teemoHp, garenHp;
上面语句声明了两个整数类型的变量, 等同于:
- int teemoHp;
- int garenHp;
2)变量初始化
在对变量声明时, 编译器会给变量分配内存, 但分配的这个内存并不会被清空. 这个就和你删除电脑中的文件一样, 虽然你点了删除这些文件, 但实际上这些文件还会存在, 只是我们看不到了. 只有当你再次存储文件覆盖这些文件时, 这些文件才算是删除了. 这也是一些删除的文件, 也可以通过某些手段来恢复的重要原因. 那么就可能出现编译器给我们分配的内存, 已经有存储值的情况, 而且这个值对我们来说还是不确定的. 为了防止程序因为不确定的值而出现不可预料的情况, 我们在使用变量的时候就要对其进行赋初值, 使得变量的值是确定的, 这种方法就是初始化.
下面再来看一个简单的实例, 我们要把提莫的血量作为一个变量, 提莫的血量值是 586. 在 C 语言中, 就可以表示成:
- int teemoHp;
- teemoHp = 586;
我们先声明了一个变量 teemoHp, 然后将常量 586 保存到变量 teemoHp 中. 第二个语句中,"=" 也叫赋值操作符, 这个过程叫做赋值. 赋值是指数据放到内存的过程, 我们把这个过程叫做变量的赋值; 又因为是第一次赋值, 也称变量的初始化.
在声明变量的同时可以直接对其进行赋值, 上面的两个语句, 又可以直接表示成:
int teemoHp = 586;
如果多个变量具有相同的值, 还可以进行连续的赋值. 例如:
- int teemoHp, garenHp;
- teemoHp = garenHp = 586;
但不可以在声明的时候对其进行连续赋值. 像下面语句一样:
int teemoHp = garenHp = 586;// 报错
这样写会导致标识符 garenHp 没有声明, 所以编译器报错.
如果要在一个语句中这样做, 我们应该写成下面语句:
int teemoHp = 586, garenHp = 586;
我们还可以写成:
- int teemoHp, garenHp = 586;
- teemoHp = 586;
我们知道, 在实际中, 提莫通过等级的提升以及出的装备, 血量的值会不断变化, 那我们应该怎么办呢? 答案是, 血量的值是一个变量, 我们可以通过再次赋值改变血量的值, 例如:
- int teemoHp = 586;
- teemoHp = 1000;
- teemoHp = 5000;
再次的赋值, 会把第一次的数据覆盖掉. 也就是说, teemoHp 中最后的值是 5000(这怕不是一个肉提莫), 这也是因为 586,1000 已经被覆盖掉了.
5. 总结
总结一下, 本节内容主要介绍了 C 语言程序的常量和变量. 介绍了常量和变量的概念以及命名规范, 然后讲解了它们的一些基本使用方法.
6. 练习
4-1 对下面进行判断, 哪些是合法标识符, 哪些又不是合法标识?
- su8
- _total
- Class
- Student_name
- louts_1_2_3
- BASIC
- M.D.John
- \#123
- 3D45
- a>b
4-2 编写一个程序, 对盖伦的属性值, 找到合适的类型来定义并且为其赋值.
名字: 简称为 G
生命值: 455
移动速度: 340
攻击速度: 0.625
攻击范围: 125
生命回复: 8.25
攻击力: 59.5
可以在评论中, 写下你们的练习答案.
之后的文章会给大家带来更精彩的内容
来源: https://www.cnblogs.com/cxyjczs/p/10193398.html