根据变量的作用域,可以将变量分为:局部变量和全局变量
1.局部变量
-
定义:在函数(代码块)内部定义的变量(包括函数的形参)
-
作用域:从定义变量的哪一行开始,一致到代码块结束
-
生命周期:从定义变量的哪一行开始分配存储空间,代码块结束后,就会被回收
-
没有固定的初始值
2.全局变量
-
定义:在函数(代码块)外面定义的变量;
-
作用域:从定义变量的哪一行开始,一直到文件结尾(能被后面的所有函数共享);
-
生命周期:程序一启动就会分配存储空间,程序退出时才会被销毁;
-
默认的初始值是0;
代码练习:
#include <stdio.h>
int age;
void test()
{
int age;
age = 20;
}
int main()
{
printf("%d\n", age); // 在main函数内没有age变量就会去函数外面找,由于外面的变量age是一个全局变量,虽然没有进行初始化,但是默认就是0
test(); // test函数执行完,里面定义的age变量就会被销毁,这里访问的还是全局变量age
printf("%d\n", age);
return 0;
}