变量的生命周期和{ }的相关知识
来源:互联网 发布:github php开源项目 编辑:程序博客网 时间:2024/05/22 16:41
生命周期如果和寄存器、内存什么的挂钩,就变得不那么好理解。、
其实生命周期的概念也很简单,无非就是变量从哪到哪有效。这里只说生民周期和大括号{ }的联系
浅显一点说,一个变量的生命周期就是从上一个 { 开始,到下一个 } 结束为止
[1]
看这么一个程序,就会对生命周期的概念更了解一点
问题——我们已经定义了b,为什么在括号外使用b的时候,会报错呢?
原因是——b的生命周期就是从 {//2 开始, }//3结束,然后b被回收,也就是b不存在了。(但是在VS中内存中的值还在,等待下一次分配)
[2]
这段程序给人的第一感觉是重定义!实际上却能够正常运行!就像函数一样,在 { //2 到 } //3 之间,第二个a是有效的,即使同名。
需要注意的是,在内层的大括号中,由于两个a重名,所以无法访问外层的a。具体值的变化已经在程序中标出。
[3]
生命周期没结束的变量可以正常操作。参见注释[4]回顾一下曾经使用过的生命周期相关知识:
1.for循环中定义变量,会在for循环结束后被回收。
2.函数中传递形参,会生成一个拷贝,函数结束后被回收;同时在函数中创建的变量也会被回收。
[5]知识补充
如果想要完整的理解生命周期的知识,可搜索以下关键词:
1.变量在内存中的存放--------》全局变量\局部变量\栈区\堆区\动态分配
2.如何告诉编译器这个变量已经存在?------》extern语句的使用
3.连接、外连接-------》编译过程
4.多个cpp以及带.h的编译-------》宏定义\#ifndef
阅读全文
0 0
- 变量的生命周期和{ }的相关知识
- 变量的生命周期和{ }的相关知识
- OC知识--成员变量(属性,实例变量)的相关知识
- 变量的生命周期和选用
- 静态变量和实例变量的生命周期
- 由一个语句引出的关于C的变量和常量的相关知识
- 一个引用相关问题,延长临时变量的生命周期
- Servlet的生命周期和变量范围
- 异常类型和异常变量的生命周期
- 一个和viewcontroller生命周期相关的bug
- java中的静态变量和实例变量的生命周期
- Java 静态变量和实例变量的生命周期
- java中的静态变量和实例变量的生命周期
- Java 静态变量和实例变量的生命周期
- java中的静态变量和实例变量的生命周期
- java中的静态变量和实例变量的生命周期
- 局部变量的生命周期
- java 变量的生命周期
- Android ble中nitify和indication的区别
- 最大似然估计 (MLE) 最大后验概率(MAP)
- team、Bridge模式
- HIVE CREATE TABLE(一)
- python--为什么Python有相同的不可变对象id不同?
- 变量的生命周期和{ }的相关知识
- Win10 中VS2015 配置opencv3.2
- 数据结构与算法-伸展树
- RSA非对称密钥加解密使用示例
- 泛微OA节点执行接口实现
- KFC系列之
- spring kafka源码解读
- 对C#Chart控件使用整理
- 如何在Vue 2中处理文件上传