根据变量作用域的不同,变量被分为局部变量和全局变量两大类。
(1)局部变量
局部变量是指在函数内定义的变量,局部变量只能在定义它的函数内使用,除此之外的任何函数不能使用,主函数内定义的局部变量的作用范围也仅限于主函数。
局部变量甚至可以在函数内的复合语句中定义,这样的变量就只在该复合语句中有效。
(2)全局变量
全局变量是指在函数之外定义的变量,其作用范围是从定义位置开始到源文件结束为止,其间的函数都可以使用,可以说全局变量是多个函数的公共变量。
如果在一个文件中,某全局变量与某函数内的局部变量同名,则在该函数的执行过程中,局部变量发挥作用,全局变量被屏蔽起来不发挥作用。当程序流程离开该函数,全局变量又会恢复其作用。
2.变量的生存期(www.xing528.com)
变量的生存期是指变量在程序执行过程中的哪一段时期内存在、拥有分配的内存存储单元,即变量在哪些函数的执行期内被分配存储单元。
(1)动态存储变量
动态存储变量是指动态存储区存放、动态分配存储单元的数据,动态存储变量的生存期只限于所在函数的执行期。动态存储变量包括自动变量、形参变量和寄存器变量3 种类型。
(2)静态存储变量
静态存储变量是指在静态存储区存放,在程序开始执行时就分配固定存储单元的变量。包括全局变量和静态局部变量两种类型。
①全局变量。由于全局变量的作用域基本包含文件中的所有函数,使全局变量在所有函数的执行过程中均存在,因此系统会为全局变量分配固定的存储单元供其长期使用。
②静态局部变量。静态局部变量是指在函数内定义、用关键字static 进行说明的变量。静态存储变量是在编译时分配存储单元并赋初值,以后在整个文件的运行过程中始终保持该存储单元不变。
静态局部变量不会随函数的调用结束而释放,而会保留本次调用结束时的值,如果下一次再调用时则是使用上次调用结束时的值作为初始值参与运算。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。