C语言| 局部变量、全局变量
重点掌握[局部变量] [全局变量]!
[寄存器] 在CPU内部存储数据的区域,是CPU的组成部分,用来暂时存放参与运算的数据和运算结果。(和内存比,存储的数据要少得多)
【局部变量】
[局部变量]定义在函数内部的变量,只在本函数内有效。
用{大括号}限定的,只在大括号内有用,执行完,局部变量马上就会被释放掉。
所以,不同函数中,可以定义同名的局部变量。
复合语句,就是用大括号{ }括起来的多个语句。
【全局变量】
[全局变量]定义在函数外部的变量。
1 可以被整个C程序中所有的函数所共用。
2 作用范围:从定义的位置开始,一直到整个C程序结束。
所以根据定义位置的不同,全局变量的作用范围不同。
在一个函数中,可以使用本函数的局部变量,可以使用有效的全局变量。
[注] 全局变量和局部变量的名字,不能设置一样的!
【系统分配空间,初始化】
局部变量,在栈中分配存储空间。
全局变量,在静态存储区中分配空间。
只要是在静态存储区中分配,如果未初始化则系统都会自动将其初始化为0。
所以,全局变量未初始化,则系统自动将它初始化为0。
不建议使用全局变量的原因:
1 全局变量在程序的整个执行过程中都占用存储单元。
2 全局变量降低了函数的通用性
(自定义函数使用了全局变量,就不能重复使用了,要考虑全局变量有没有和其他文件的变量名重复)
3 过多的全局变量会导致程序出错,逻辑混乱。
4 在同一个程序中,全局变量和局部变量同名,会导致在局部变量的作用范围内,全局变量失效。
在程序设计中,划分模块要求模块的功能单一,对其他模块的影响要尽量小。