局部变量与全局变量区别,栈、堆和静态存储区的区别借鉴.pdfVIP

  • 3
  • 0
  • 约5.74千字
  • 约 4页
  • 2021-11-13 发布于福建
  • 举报

局部变量与全局变量区别,栈、堆和静态存储区的区别借鉴.pdf

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

文档评论(0)

1亿VIP精品文档

相关文档