C++中null与0的区别
2014-04-02 11:14
232 查看
0是一个数字,本身有着一些原生的特性诸如:起始,没有,正负的分界线,0/1中的0还可以表示否定。 NULL用于将指针指定为空指针,也就是说该指针不指向任何对象,不可以对该指针进行解引用,否则系统会报错。 很巧合并且可能令人迷惑的是,在Windows环境下,NULL正好被定义为0,对于Windows程序,将指针初始化为0或NULL的作用是相同的,都使指针无效。这是因为Windows的内存管理将0x00000000地址设为无效内存,不允许代码对它进行读写。仅仅微软的一个定义,令不少人误以为NULL和0有着天生的紧密关系,这显然是一个历史的误区。 既然设计NULL是为了满足将指针规定为无效的逻辑上的功能,那么假如某个系统指定无效内存地址为0x20000000,那么基于这个系统的编译器就很有可能将NULL定义为0x20000000,这时0和NULL就不能等同了。 千万记住,0以及其他所有数字在编程中仅仅是一个常量,并不一定具有某一逻辑上的功能。
相关文章推荐
- C/C++拾遗————空指针{NULL/0/(void*)0}与 空字符{null/'0'} 区别
- c和c++中NULL和0的区别
- c++中NULL,null,"",\0的区别
- c和c++中NULL和0的区别
- 关于NULL在C和C++中的区别
- c++中null和nullptr的区别
- C/C++语言中NULL、'\0’和0的区别
- C++中NULL和nullptr的区别
- C++中NULL和0的区别
- c和c++中NULL和0的区别
- C++ NULL与nullptr的区别
- c和c++中NULL和0的区别
- c/c++中的NULL和0的区别
- 【转载】C/C++杂记:NULL与0的区别、nullptr的来历
- c和c++中NULL和0的区别?!
- c和c++中NULL和0的区别
- 关于C++中的NULL、0、nullptr 区别分析
- C/C++中NULL与0的区别
- C++中的NULL和nullptr的区别
- c和c++中NULL和0的区别