- 3
- 0
- 约5.74千字
- 约 4页
- 2021-11-13 发布于福建
- 举报
C++ 变量根据定义位置的不同, 具有不同的作用域, 作用域可分为 6 种:全局作用域, 局部作用域, 语句作用域,
类作用域,命名作用域和文件作用域。
从作用域看:
全局变量 具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包括全
局变量定义的源文件需要用 extern 关键字再次声明这个全局变量。
静态局部变量 具有局部作用域。它只被初始化一次,自从第一次初始化直到程序与你新内阁结束都一直存在,他和
全局变量的区别在于全局变量对所有的函数都是可见的,而静态局部变量只对定义自己的函数体始终可见。
局部变量 也只有局部作用域,他是自动对象,他在程序运行期间不是一直存在,而是只在函数执行期间存在,函数
的一次调用结束后,变量就被撤销,其所占用的内存也被收回。
静态全局变量 也具有全局作用域, 他与全局变量的区别在于如果程序包含多个文件的话, 他作用于定义它的文件里,
不能作用到其他文件里, 即被 static 关键字修饰过的变量具有文件作用域。 这样即使两个不同的源文件都定义了相
同的静态全局变量,他们也是不同的变量。
从分配内存空间看:
全局变量、静态局部变量、静态全局变量都在静态存储区分配空间,而局部变
原创力文档

文档评论(0)