变量的初始化
2016-02-18 23:24
239 查看
当变量在创建时需要初始化,一般是因为以下原因:
1.当一段被(数据或指令)占用的内存空间被释放时,它的值并没有在物理上被擦除,而只是告诉系统不再使用。当有另一个变量再次占用这段内存时,它就包含着残存的垃圾值,若不进行初始化,我们就不知道该变量的当前值到底是什么;
2.内存上电时一般为0x00或者0xFF,但并不保证一定这样。
默认初始化:
C: 全局变量和静态局部变量:默认为0(未初始化的变量放在BSS段中,加载PE时,OS会为BSS段分配空间并清0);
局部变量:垃圾值。
C#:类成员:为值类型时默认初始化为0,为引用类型时默认初始化为null;
局部变量:无论是值类型还是引用类型,编译器都不提供默认初始化,若没有显示初始化则编译器报错。
1.当一段被(数据或指令)占用的内存空间被释放时,它的值并没有在物理上被擦除,而只是告诉系统不再使用。当有另一个变量再次占用这段内存时,它就包含着残存的垃圾值,若不进行初始化,我们就不知道该变量的当前值到底是什么;
2.内存上电时一般为0x00或者0xFF,但并不保证一定这样。
默认初始化:
C: 全局变量和静态局部变量:默认为0(未初始化的变量放在BSS段中,加载PE时,OS会为BSS段分配空间并清0);
局部变量:垃圾值。
C#:类成员:为值类型时默认初始化为0,为引用类型时默认初始化为null;
局部变量:无论是值类型还是引用类型,编译器都不提供默认初始化,若没有显示初始化则编译器报错。
相关文章推荐
- Linux笔记(5)——搜索命令
- 内部类基本知识点
- tomcat7+nginx 负载均衡
- 范型,迭代Map
- C++ 自制Redis 数据库(十一)哈希类与数据库类
- ios闭包循环引用精讲
- Sigar 获取CPU和Memory内存等信息使用详解
- CPU和GPU的区别
- Createjs学习心得之使用EaselJs实现拖拽效果
- sql优化 in和exists效率讨论
- jdk path
- Redis服务器的启动过程分析
- restful规则脑图
- 【JAVA】14、一维数组的声明及分配内存
- [018]Java编程思想——聚合
- 主进程被杀死时,如何保证子进程同时退出,而不变为孤儿进程(三)
- SSH+Ext+mysql快速开发
- Karaf Tutorial
- 'Application windows are expected to have a root view controller at the end of application launch'
- 项羽是怎么死的