0. 全局变量
- 形式:定义在
函数
,代码块
,函数形参列表
外
的变量 - 特点:如果
没有
进行初始化, 那么系统默认会将全局变量初始化为0
- 位置:存储在
静态区
中,随着程序的启动
而创建,随着程序的结束
而结束
- 分类
1. 外部全局变量 (1) 概念:可以 被其它文件 访问 的全局变量, 默认情况下所有的全局变量都是外部全局变量 (2) 特点:可以定义多个同名的外部全局变量, 且多个同名的外部全局变量指向同一块存储空间 (3) 作用域:从 定义的那一行 开始, 直到 程序结束 (4) extern:用于声明一个外部全局变量 2. 内部全局变量 (1) 概念:只能被当前文件访问的全局变量, 只要给全局变量加上 static 关键字就是内部全局变量 (2) 特点:可以定义多个同名的内部全局变量; 多个同名的内部全局变量如果不在同一个文件中, 那么指向不同的存储空间 (3) 作用域:从 定义的那一行 开始, 直到 文件末尾
1. 局部变量
- 形式:定义在
函数
,代码块
,函数形参列表
中
的变量 - 特点:如果
没有
进行初始化, 那么局部变量中是一些随机
的值 - 位置:存储在
栈
中, 当作用域结束系统会自动释放
栈中的局部变量int main() { int num = 10; { int num = 66; printf("num = %i\n", num); } return 0; }
-
static
修饰局部变量1. 位置:存储在 静态区 中 2. 作用域:从 定义的那一行 开始,直到程序结束 void test(void); int main() { int num = 10; printf("&num = %p\n", &num); test(); test(); return 0; } void test() { static int value = 100; printf("&value = %p\n", &value); }
网友评论