变量的作用域:
作用域是一段程序代码中所用到的名字并不总是有效的或可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域
1.局部变量:
局部变量的作用域就是他所在的局部范围:
int main()
{
int a=10;//在只有这个a变量的时候两个printf都能输出这个a
{
int a=5;//只有int a=5这个括号里的printf可以输出这个a
printf("a=%d\n",a);
}
printf("a=%d\n",a);
return 0;
}
2.全局变量
全局变量的作用域为整个工程
局部变量放在内存的栈区,全局变量是放在内存的静态区
局部变量和全局变量重名时局部变量会覆盖全局变量
一个局部变量不初始化默认是随机值,一个全局变量不初始化默认是0.
变量的生命周期:
1.局部变量的生命周期:进入作用域生命周期开始出作用域生命周期结束
2.全局变量的生命周期:整个程序的生命周期
常量:
1.字面常量:写出的数字 整型常量(e.g.30) 浮点型常量(e.g.2.3) 字符型常量(用单引号引字符e.g.'c')字符串常量(e.g."abc")
2.const修饰的常量(不能被改变)在c语言中,e.g. const int a=10,在c语言中const修饰的a本质上还是变量只不过有常量的属性
3.#define定义的标识符常量
#define Max 100//定义一个标识符常量Max值为100
int main()
{
printf("%d\n",a);//可以直接打印
int a=Max;//可以直接代入用
printf("%d\n",a);
return 0;
}
这个代码运行出来就是100 100;把标识符常量换成字符串运行出来就是字符串
4.枚举常量enum(一一列举)(不能改e.g.不能写RED=10)
enum color
{
RED,
BLUE,
GREEN
};
int main()
{
enum color c=RED;
return 0;
}