1.变量的定义方法
2.变量的分类
3.变量的作用域与生命周期
4.常量的分类
1.变量的定义
变量的类型+变量名+赋值
int a=10;
float b=20.5;
char c='h';
如上图分别定义了一个整形变量a,值为10。浮点型b,值为20.5。字符型c,值为h。
注意:C语言的语法规定,变量要定义在代码块的最前面。
2.变量的分类
变量分为局部变量与全局变量。
局部变量:定义在代码块以内
全局变量:定义在代码块以外
局部变量是在局部范围内定义的,不能在范围外使用。
当局部变量与全局变量的名字相同时,局部变量优先,如下图
int a=100; //定义的全局变量a
int main()
{
int a=10; //定义的局部变量a
printf("%d",a); //输出a时,理论上全局a在这里也能使用,但是有局部变量时,局部变量优先,所以输出结果为10
return 0;
}
注意:一般不建议全局变量与局部变量名字相同
3.变量的作用域与生命周期
局部变量的作用域是该局部变量所在的代码块。
全局变量的作用域是整个工程,使用不同源文件的全局变量时需要声明。
当我在同一个工程中的一个源文件中定义了全局变量a时,我在其他的源文件中也能够使用它,只需用extern对该变量进行声明,如下图。
生命周期:指变量的创建到变量的销毁之间的一个时间段。
局部变量的生命周期是进入作用域开始,离开作用域结束。
全局变量的生命周期是整个程序的生命周期。
4.常量的分类
(1) 字面常量
(2) const修饰的常变量
(3) #define定义的标识符常量
(4) 枚举常量
(1)字面常量:直接的值,例如10,20等。
(2)const修饰的常变量
int main()
{
const int n=10;
int arr[n]={0};
return 0;
}
如上图,使用关键字const修饰n,使n具有了常属性--即n 的本质仍是变量,只是具有常量的属性。所以上述代码报错。
(3)#define定义的标识符常量
#define MAX 10
int main()
{
int arr[MAX]={0};
printf("%d\n",MAX);
return 0;
}
如上图,上述代码可以编译,说明用#define可以定义常量
define是一个关键字,如上图用#define定义的常量,会在预编译阶段将函数中所有的MAX换成10.
(4)枚举常量
枚举-------即一一列举
生活中有很多可以一一列举的值,如星期,三原色等
C语言提供了一个枚举类型,让我们能够创造出能够被一一列举的类型
enum color
{
\\定义的枚举常量
red, //0
blue, //1
green //2
};
\\定义了color这种类型的可能的取值
int main()
{
enum color a=red;//想用a表示color,即可以用这三个常量给a赋值
printf("%d,%d,%d\n",red,blue,green);//输出结果为0 1 2.即默认枚举常量的值从0开始,逐次加1.
return 0;
}