23、变量作用域

1、什么是作用域

活动的空间范围

2、按变量作用域划分
2.1、局部变量

定义: 在函数(代码块)内部定义的变量(包括函数的形参)
作用域: 从定义变量的那一行开始,一直到代码块结束
生命周期: 从定义变量的那一行开始分配存储空间,代码块结束后,该变量就会被回收

2.2、全局变量

定义: 在函数外面定义的变量
作用域: 从定义变量的那一行开始,一直到文件结尾(能被后面的函数共享)
生命周期: 从程序一启动就会被分配存储空间,程序退出时才会被销毁

3、案例
3.1、源代码
1
2
3
4
5
6
7
8
9
#include<stdio.h>
int i = 10;
int main()
{
printf("i=%d\n",i);
int i = 11;
printf("i=%d\n",i);
return 0;
}
3.2、运行结果订单

运行结果

3.3、内存图

运行结果

4、总结

函数在内存中也有对应的内存地址
在函数查找变量时,采用”就近原则”,先查看函数内的变量,如无则查找函数外部是否存在