上一次我们介绍了C语言的基本数据类型http://t.csdn.cn/gR2oV,这一次我们接着介绍C语言的变量与常量。
1、认识C语言主函数
main()为主函数 大括号{}(学名叫做代码块)为作用域(即函数起作用的范围) int 为函数的返回类型 return 0代表默认返回一个值0 这是C语言最基本的函数形式,大家目前记住即可。
2、变量
变量从数学上来讲就是一个可变的符号x,用来表示不同的值,而C语言由于存在不同的数据类型,这个x可以表示的就不仅仅是单纯的数值,还可以表示字符 (char类型等。当然也可以用来当作表达式,表达变量与其他变量之间的关系(即函数关系)
2.1定义变量的方法
在创建变量之前,我们先要想好变量的类型 变量的名字
例如:
这里我们创建了一个int类型的变量a 和 char类型的变量b 创建完后,我们应该对变量进行初始化。如图所示,我们将变量a初始化为0,将变量b初始化为0(当然这里用单引号引用的0是字符0,与数值0不同)
当然,在工程较复杂时,我们可能并不能直接确定变量的初始化内容,我们可以统一将变量初始化为数值0,在之后使用的时候再给它赋值。
2、2变量的命名
不同类型变量的名字可以相同也可以不同,我们创建了int a后,也可以创建一个相同变量名的 char a。在一个作用域 即{}内,同一类型的变量 它们的名字不能相同,即我们不能创建2个int a
2、3变量的分类
从类型上分类,与C语言的7种基本数据类型相同。
从作用域{}(即变量可以起作用/可以使用的范围)上来说,分为局部变量
定义在主函数{}外部的叫做全局变量,定义在{}内部的叫做局部变量。这里我们可能会产生疑问,表示相同类型变量名不能相同吗,为什么会有两个int a呢?
这是因为在类型上相同,但作用域不同,C语言允许这种类型变量的创建
2、4变量的作用域和生命周期
作用域:通常来说,一段程序代码中所用到的名字并不总是有效的/可用的 限定这个名字可用性的代码范围就是这个名字的作用域。(官方解释)
1、局部变量作用域是变量所在局部范围(可理解为所在{}内)
2、全局变量的作用域是整个工程
生命周期:变量从创建到销毁的一个时间段 此处我们可以理解为 变量创建从操作系统获取一块空间作为这个变量的大小(如int4个字节),在生命周期结束后会将这一块空间返还给操作系统
1、局部变量的生命周期:进入作用域即开始,出作用域即结束。
2、全局变量的生命周期:即整个程序的生命周期。
3、常量(通常分为4种,暂时了解一下即可,与后面知识关联大)
3、1字面常量
一个数值 一个字符 一个字符串 都可以被称为字面常量(常量的值固定,不可修改,这种属性被称为常量的常属性)
3、2const修饰的常变量
被const修饰后的变量num2具有了常属性,此时它不能被修改。然而,常变量的本质依然是一个变量,下面我们给出证明。(涉及到一点点数组的知识)
VS编译器不支持变长数组,即arr[]中不能放入变量只能放入常量(某个数),此时编译器显示表达式只能含有常量值,从而证明了被const修饰了的常变量本质上依然是变量。 (先记一下,学了数组之后再来重新理解^.^)
3、3#define定义的标识符常量
例如人的颜值M满分为100,可以定义这个常量M为值100,这个100以后可以用M代替,在数组中也可以使用(因此它不是变量) 。
然而M作为常量也是可以修改的,但这里的修改其实相当于重新定义,即将原来的#define M 100改成#define M 200。
它的意义在于,当我们要大量使用同一个值(如100)时,可以用M来代替,当我们想要修改这些值时,可以直接将M的值重定义为200,此时你使用的所有M当中的100都会变为200,从而大大提高效率。(在之后的猜数字、三子棋、扫雷小游戏定义不同难度,需要修改例如数字范围、雷数时会得到有效应用)
3、4枚举常量
枚举 即一 一列举,某个东西的种类较少,可以被列举出来(例如血型 性别 三原色等)
以颜色为例:
enum为枚举的关键字,下面的红蓝绿是三原色的枚举
常量的知识可能有些难理解,有些吃力,但是学习如同爬坡,不感到吃力永远不会前进,也就永远不会进步。希望大家都能坚持下去^.^