C++中的局部变量、全局变量、局部静态变量、全局静态变量的区别
2024-10-19 00:25:24
局部变量(Local variables)与 全局变量:
在子程序或代码块中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序或代码块。
当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
全局变量在程序开始运行期间就已经在内存中开辟了内存空间,直到程序结束才会释放这块内存空间。
全局变量要在其他文件中使用,需显示的声明这个变量,使用extern关键字声明(extern int nData;)。
int nData = ; // 这是一个全局变量 int main()
{
int i = ; // 这是一个局部变量,这个变量只在main函数中有效。
int nData = ; // 这也是一个局部变量,但是这个局部变量与全局变量重名了,那么如果访问nData这个变量的时候到底访问的是哪个?
cout << nData << endl;
return ;
}
这段代码输出的值是100,因为当局部变量与全局变量重名时,访问的是局部变量。否则访问的则是全局变量!
局部静态变量:
局部static变量与全局变量一样,在程序开始运行期间就已经在内存中开辟了空间,直到程序结束才会释放这块内存空间。
一个局部static变量只定义/初始化一次,后序都不再定义或初始化。
局部static变量只能在定义的子程序或代码块中访问,不能在外部访问,所以叫局部静态变量。
全局静态变量:
全局static变量与局部static变量一样,在程序开始运行期间就分配了内存地址。
局部static变量只能在定义的代码块中被访问,而全局static变量只能在定义的文件中被访问。不能跨文件访问。
最新文章
- iOS - 滑屏方案
- 69个经典Spring面试题和答案
- Ajax全接触
- linux学习笔记2-命令总结4
- iOS学习笔记---oc语言第八天
- QTableWidget嵌入QpushButton后定位是哪一个QpushButton
- [itint5]两有序数组的交和并
- C语言怎么计算程序所花时间
- BestCoder Round #36 [B] Gunner
- 【InfluxDB】InfluxDB学习实践笔记
- Node 7.6默认支持Async/Await
- so文件相关
- 未能加载文件或程序集,PublicKeyToken=“**********”,或它的某一个依赖项。强名称验证失败。
- [tools]hugo&;github构建静态网站/百度统计
- kvm libvirt 虚拟机管理
- Android开发学习笔记-自定义对话框
- irport报表,把数字金额转换成大写人民币金额
- nginx源码编译以及源码编译过程中遇到的问题
- jenkins配置ssh
- How to clear fmadm log or FMA faults log (ZT)
热门文章
- idea ---->; 使用idea工具整合mybaiti时出现的问题总结
- liunx进程管理之进程介绍
- HDOJ-1156 Brownie Points II 线段树/树状数组(模板)
- grid 操作实例
- git clone项目
- 『C++』基础知识点
- 使用org.apache.poi导出Excel表格
- SVN 多分支管理
- AIX安装JDK1.7教程
- 正则表达式test()和exec()、 search() 和 replace()用法实例