关于成员变量自动初始化和局部变量手动初始化
2009-04-14 01:15
281 查看
大家都知道成员变量是有默认初始化值的,而局部变量调用前一定要先给它初始化,否则会报错。为什么会这样规范呢?见下面几句话。
类成员变量因为你在new一个对象时,分配了内存空间后会给所有的成员变量一次初始化,没有赋值的会给成员变量对应类型的“0”值,然后才构造对象初始化。每一个对象都有一个成员变量的副本,一直存在于对象的堆空间直到这个对象空间被回收。
局部变量在用的时候是直接入栈的,如果没有赋值,这个变量就没有初始值,也就无法操作,所以局部变量要初始化。并且局部变量在方法结束后会出栈,就像它没有来过一样
类成员变量因为你在new一个对象时,分配了内存空间后会给所有的成员变量一次初始化,没有赋值的会给成员变量对应类型的“0”值,然后才构造对象初始化。每一个对象都有一个成员变量的副本,一直存在于对象的堆空间直到这个对象空间被回收。
局部变量在用的时候是直接入栈的,如果没有赋值,这个变量就没有初始值,也就无法操作,所以局部变量要初始化。并且局部变量在方法结束后会出栈,就像它没有来过一样
相关文章推荐
- 成员变量自动初始化,局部变量必须手动初始化
- java关于局部变量必须初始化赋初值及成员变量不必须该操作的原理浅解析
- 基本类型的成员变量(attribute)会被自动初始化,但局部变量(variable)就不会被自动初始化。
- 关于java中成员变量有默认初始化而局部变量没有
- Delphi会自动初始化全局变量和类成员变量,但不初始化局部变量
- 关于成员变量和局部变量是否都会被默认初始化的问题
- 静态成员变量初始化问题。关于 error LNK2005 static int:已经在***.obj中定义
- C/C++关于全局变量和局部变量初始化与不初始化的区别
- 关于C++ 类数据成员初始化的一点总结【为什么类定义中不能初始化成员变量】
- Java成员变量和局部变量初始化问题
- 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)
- 成员变量和局部变量的初始化和内存运行机制分析
- 新手学到的 关于成员变量和局部变量的区别
- A4第四章第2节null和成员变量、局部变量的不同初始化
- 关于c++的类中成员变量初始化问题+初始化列表中对应顺序问题!
- 在对象创建的时候就自动初始化成员变量-构造函数
- 内存管理(一):栈区、堆区,成员变量和局部变量,alloc,retain,自动释放池,成员变量及属性的内存管理
- C/C++关于全局变量和局部变量初始化与不初始化的区别
- 关于全局变量,局部变量以及成员变量的区别
- 为什么全局变量无须初始化 系统自动给默认值,局部变量必须初始化?