jcst.net
当前位置:首页 >> C++中为什么要尽量使用0而不是NULL >>

C++中为什么要尽量使用0而不是NULL

来自网上,仅供学习交流。 首先呢,要明白一点儿,NULL是一个无类型的东西,而且是一个宏。而宏这个东西,从C++诞生开始,就是C++之父嗤之以鼻的东西,他推崇尽量避免宏。而在他的FAQ中,也有相应的一个关于NULL与0的解释,也谈到了这一点儿。St...

你们老师这样对你说的么?然后想告诉你,C++最新的规范中(2011年的,也叫C++11)的说法是,NULL是标准的,但是兼容以前的以0等价于空值的写法。 所以,标准的写法是NULL,而不是0。 但是,要在心中建立起这样的概念,C++编程中,所有的数据对电...

NULL是空地址的意思,在使用指针变量时表示一个空地址,NULL的值在“stdio.h”头文件中被定义为一个值为0的符号常量;即 #define NULL 0 NULL的值为0 0可以表示数字0,也可以表示ASCII码值为0的字符 “ ”表示字符串的长度为0的字符串。 千万别把NUL...

在c++里,NULL和0是通用的,NULL本身是一个宏:#define NULL 0,所以和0的用法是一样的,例如int *p = NULL;int *q = 0; // 和 int *q = NULL 一样char *str = NULL;等等。 知识延展: NULL本意是“空的”;元素只有“零”的意思,计算机中通常表示...

???没看懂什么意思,0是指值为0,而NULL表示对象为空。 比如说,你声明一个对象 classA a;//classA是你自己创建的一个类。 这个a 并没有实例化,那么这个a就为NULL了。

在stdio.h中是这样定义的: #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif

0是一个数字,本身有着一些原生的特性诸如:起始,没有,正负的分界线,0/1中的0还可以表示否定。0可以表示数字0,也可以表示ASCII码值为0的字符。 NULL用于将指针指定为空指针,也就是说该指针不指向任何对象,不可以对该指针进行解引用,否则...

NULL是对指针而言的,不能用于对象本身 可以这样: AA* aa(){ return NULL; } 另外,C++提倡用0代替NULL

不同。无论C还是C++,NULL都是一个implementation-defined的宏,是实现相关的。NULL并不就是0,也不就是(void*)0。只不过,大多数编译器把NULL定义为0或者(void*)0而已,但并非所有编译器都这样做的。

应该说都是空指针,但是差别在于,前者是一个数值0,一般认为是整数型数值0;而后者已经另外强制的指定了类型属性,那就是一个void型的指针。前者在赋值给某个指针(包括void型指针)时,通常会有警告(因为C语言虽然允许把一个整数值赋值给一个...

网站首页 | 网站地图
All rights reserved Powered by www.jcst.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com