C++中变量的作用域和生命周期
2016-12-13 22:14
330 查看
#include "iostream.h" void main() { int m=1,n=2,k=3; cout<<"m="<<m<<"n="<<n<<"k="<<k<<endl; cout<<"m="<<1<<"n="<<2<<"k="<<3<<endl; { //重新声明了n值,因此此层中的n相当于一个新的变量,对外层无影响 int n=4; m++; k+=4; //下面代码块重新声明,其实可以看做独立出来的一部分,不影响其他模块 { //没有声明n值,继续使用上一层的n值 int m=3,k=3; cout<<"m="<<m<<"n="<<n<<"k="<<k<<endl; cout<<"m="<<3<<"n="<<4<<"k="<<3<<endl; } k+=5; m-=4; cout<<"m="<<m<<"n="<<n<<"k="<<k<<endl; cout<<"m="<<-2<<"n="<<4<<"k="<<12<<endl; } //此处的m,k值继续其内一层的模块值,n为最外层的值,因为上一层中声明了n m+=2; n++; k--; cout<<"m="<<m<<"n="<<n<<"k="<<k<<endl; cout<<"m="<<3<<"n="<<3<<"k="<<2<<endl; }
运行结果:
通过这道题可以判断下自己的理解,要区分在作用域内是否重定义,如果重定义则相当于一个新的变量来对待,使用作用域内重定义的变量值,并且这个值在脱离作用域后销毁,如果没有重定义,则一直使用其外围作用域范围内的变量及对应的值。也就是说,在括号内部声明的变量相当于不同的变量,占据不同的内存。在内部没有声明变量时,则还是原来的变量。
相关文章推荐
- C++中变量的作用域与生命周期
- C++中变量的作用域与生命周期
- C++ 程序变量作用域生命周期笔记
- C++中变量的作用域与生命周期
- C++中变量的作用域与生命周期
- C++中变量,函数的作用域和生命周期?
- C/C++中的变量作用域,生命周期,初始值
- C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期
- C++中变量的作用域与生命周期
- C++中变量的作用域与生命周期
- C++中变量的作用域与生命周期
- c++中全局变量,全局静态变量,局部静态变量,局部变量的作用域和生命周期
- C++中变量的作用域与生命周期
- C++中变量的作用域与生命周期
- The New C++ -- 变量 (6. 变量名的声明点和作用域)
- 探讨C++ 变量生命周期、栈分配方式、类内存布局、Debug和Release程序的区别(一)
- C++变量作用域的几个例子
- 探讨C++ 变量生命周期、栈分配方式、类内存布局、Debug和Release程序的区别(二)
- 探讨C++ 变量生命周期、栈分配方式、类内存布局、Debug和Release程序的区别
- c++中变量的存储位置及其作用域