习惯上将生活中可以改变的值称为变量,不可改变的值称为常量,在C语言的代码中体现为定义的形式区别。
变量的定义:
int main()
{
short age=20; //年龄
int high=180; //身高
float weight=88.5; //体重
return 0;
}
在上图中的代码全部为C语言对变量的定义,格式为“变量数据类型+空格+变量名=数据;”,这样的变量在定义时等于多少,它的初始值就是多少,也可以不初始化写成“数据类型+空格+变量名;”的结构,但是这时变量内的值是一个随机值,容易导致后续的错误,因此应当尽量初始化变量。但初始值是可变的,如果后续程序中有相应的数值改变的话,对应变量名代表的值也会发生改变,因此称为变量。
变量的分类:
变量在其本身类型的分类上可分为全局变量和局部变量,在结构上看,在主函数的大括号内部定义的变量为局部变量,外部定义的变量为全局变量。如果引入生命周期的概念,全局变量的生命周期通常贯穿整个主函数的生命,而局部变量只在它自己定义的局部范围内起作用,离开这个范围则会销毁。更应当注意的是,局部变量不可发生同一变量名定义两次的情况,但如果是同一变量名但一个是局部变量,一个是全局变量,则程序可以正常执行,且在局部变量的范围内优先使用局部变量。如下两图:
局部变量优先
同一主函数内局部变量不可重复定义
注:虽然局部变量可以优先,但尽量不要将全局变量和局部变量取相同的名字,防止发生混淆冲突。
变量的使用
变量的具体使用非常灵活,我后期会另出一篇文章专门分析。
变量的作用域和生命周期
变量在代码中发生作用的区域称为变量的作用域,局部变量的作用域是局部变量所在的范围,全局变量的作用域为整个工程。
生命周期是一个变量从创建到销毁经历的时间长度,全局变量的生命周期通常等同于整个函数的生命周期,局部变量的生命周期等同于它所在范围的生命周期,两种变量在生命周期结束,或者说离开自己的作用域后都会被销毁。
注:有一种特殊的变量,它本身并不定义在源文件A中,而是定义在源文件B中,也可以被用于A中的程序,只需调用函数extern做声明,格式为“extern+变量类型+变量名;”
以上为变量的基本知识。