作用域
程序设计概念:通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域(通俗来讲,这段代码在哪个地方可用,哪个地方就是它的作用域,变量按作用域可分为“局部变量”和“全局变量”。
(1)局部变量: 局部变量也称为内部变量。 局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。局部变量的作用域是变量所在的局部范围。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
{
int a = 2022; //局部变量
printf("a = %d\n", a);
}
return 0;
}
a创建的变量可以在printf("%d\n",a)中使用,所以printf(“%d\n”,a)就是它的作用域
(2)全局变量: 全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明。 只有在函数内经过说明的全局变量才能使用。全局变量的说明符为 extern。但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。extern的意思是虽然另一个源文件有一个全局变量但是我不清楚是否有,所以需要用extern来告诉它有这样一个全局变量。全局变量的作用域是整个工程。
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int g_val = 2022; //全局变量
int main()
{
printf("%d\n", g_val);
{
printf("%d\n", g_val);
}
return 0;
}
生命周期
变量的生命周期通俗来说就是变量的创建和销毁之间的时间段,生命周期也分为局部变量的生命周期和全局变量的生命周期。
(1)局部变量的生命周期:进入局部范围生命开始,出局部范围生命结束
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
{
int a = 10;
printf("%d\n", a);
}return 0;
}
比如这个局部定义int a = 10;当出了局部之后生命周期结束
(2)全局变量的生命周期:全局变量的生命周期在程序定义这个变量的时候执行时诞生,在整个程序结束时消亡。全局变量所占用的内存是不能够在程序执行过程中被自己被释放的。