区别:
1. 局部变量:
(1)在函数体内部或者复合语句中定义的变量称为局部变量。
(2)作用域为当前的函数体。
(3)在栈区(动态存储区)分配。
(4)函数调用时开始分配,调用结束时释放。
2. 全局变量:
(1)在函数体之外定义的变量称为全局变量。
(2)当前文件所有函数都可以调用该变量,其他文件调用需要使用extern关键字。
(3)在静态存储区分配。
(4)程序运行期间不释放。
3. 静态局部变量:
(1)在函数体内部定义并加上static关键字修饰的变量。
(2)作用域为当前函数体,函数调用后不释放,值保留为最后一次调用的值。
(3)在静态存储区分配。
(4)程序运行期间不释放。
4. 静态全局变量:
(1)在函数体以外定义并加上static关键字修饰的变量。
(2)作用域为当前文件。
(3)在静态存储区分配。
(4)程序运行期间不释放。