c++变量的作用域、生存期和可见性
2024-10-01 13:42:52
局部变量
范围:在一个函数内部定义的变量,作用范围仅仅限于本函数体内。
生存期:程序运行到本函数才会给局部变量分配内存单元。函数运行完成局部变量所占的存储单元就被释放
全局变量
在函数体外部定义的变量是全局变量。能够被本文件全部其它函数訪问使用。
作用域:全部文件。在一个cpp定义的全局变量在还有一个cpp中使用,应该在使用它的函数体内部或外部进行extern说明
生存期:全局变量在程序的所有执行过程中占用固定的内存单元。生存周期是整个程序执行期间。
实验代码
/*
* 变量的作用域、生存期和可见性
* date: 2015-07-13
* author: zhang
*/ #include <iostream>
using namespace std; void fn1();
int x = 1;
int y = 2; int main()
{ int x = 10;
int y = 20;
cout << "x = " << x << ",y = " << y << endl; fn1(); cout <<"x = "<< x <<",y = " << y << endl;
return 0;
} void fn1()
{
int y = 100;
cout << "x = " << x << ",y =" << y << endl;
}
执行结果:
x = 10,y = 20
x = 1,y =100
x = 10,y = 20
从执行结果来看,当局部变量与全局变量重名时。在局部变量的作用域内,全局变量隐藏
能够參阅的其他文章:
http://www.jb51.net/article/41324.htm
http://my.oschina.net/hnuweiwei/blog/261070
最新文章
- 定制Asp.NET 5 MVC内建身份验证机制 - 基于自建SQL Server用户/角色数据表的表单身份验证
- 找出1-N中1的个数
- Python 标准库 urllib2 的使用细节
- Android 国际化字符串资源,各语言目录表及从字符串资源文件读字符方法
- C#中多线程写DataGridView出现滚动条导致程序卡死(无响应)的解决办法
- Eclipse启动 报错[Failed to load the JNI shared library jvm.dll
- jQuery 弹出div层
- poj3708:函数式化简+高精度进制转换+同余方程组
- VS前台设计中的缺陷
- (一) 从Angular1到Angular2的杂谈
- UITextFiled的输入框改成一条下划线
- Python学习笔记-Django连接SQLSERVER
- 如何生成git ssh key
- python史上最全学习路线图
- C# Winform多窗体&;&;构造函数传值
- CloudStack和OpenStack该如何选择(如果准备选择OpenStack,请做好hack的准备。CloudStack的底层功能已经做的很完善了,更适合商用)
- 《Java性能优化权威指南》
- dockerfile学习笔记
- CI循环数组问题
- C++继承后的函数访问权限
热门文章
- 浅谈cocos2dx(17) 中单例管理模式
- hdu4870 Rating (高斯消元或者dp)
- IntelliJ IDEA 10 配置 Tomcat7
- Android - 加入Android的OpenCV依赖库(Android Dependencies) 问题
- 并行编程(1) - sum.msic.Unsafe 一
- thinkPHP 空模块和空操作、前置操作和后置操作 具体介绍(十四)
- windows2003安装
- Extjs 可重用组件开始写 2014 8 23日
- BZOJ 2120 带修莫队
- 制作ubuntu的U盘启动盘