C/C++中,NULL和null的区别是什么?

 我来答
百度网友fbcd1e57
2020-05-13 · TA获得超过7379个赞
知道答主
回答量:47
采纳率:0%
帮助的人:2万
展开全部

C语言和C++对大小写是敏感的,也就知是说null和NULL是区别对待的。NULL(如已宏定义)代表空地址,null(如没宏定义)只是一个符号。

1、其实null和NULL都是字符串,具体看它们宏定义被定义成为什么值。

2、在VS中NULL被定义为0,因为习惯上把宏定义的所有字符都大写,当把NULL它赋值给指针时意思为空,当然你也可以把null定义为0了,都一样。你把0直接赋值给指针也行,只要指针指向0就为空。

3、对于空(null)指针的概念,在 C 标准中明确地定义:值为 0 的整型常量表达式,或强制(转换)为“void*”类型的此类表达式,称为空指针常量。

4、当将一个空指针常量赋予一个指针或与指针作比较时,将把该常量转换为指向该类型的指针,这样的指针称为空指针。空指针在与指向任何对象或函数的指针作比较时保证不会相等。

扩展资料

在C中,任何类型的两个空指针都保证比较相等。预处理器宏NULL被定义为实现定义的空指针常量,它在C99中可以可移植地表示为0隐式或显式转换为类型的整数值void*(指向void的指针)。

C标准没有说空指针与指向内存地址0 的指针相同,尽管在实践中可能就是这种情况。解引用空指针是C中的未定义行为,并且允许符合要求的实现假定任何被解除引用的指针不为空。

参考资料

百度百科—Null

百度百科—C/C++

sheldenwade
推荐于2017-10-03
知道答主
回答量:7
采纳率:0%
帮助的人:12.1万
展开全部
是这样的,c语言和c++对大小写是敏感的,也就是说null和NULL是区别对待的。NULL代表空地址,null只是一个符号
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Darren2025
2007-07-24 · TA获得超过300个赞
知道答主
回答量:58
采纳率:0%
帮助的人:56.7万
展开全部
NULL代表空,而null没有什么特别的意义,不是关键字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a3192048
2018-08-07 · TA获得超过164个赞
知道答主
回答量:60
采纳率:0%
帮助的人:10.2万
展开全部
C语言和C++对大小写是敏感的,也就是说null和NULL是区别对待的。NULL(如已宏定义)代表空地址,null(如没宏定义)只是一个符号。其实null和NULL都是字符串,具体看它们宏定义被定义成为什么值。
VS中NULL被定义为0,因为习惯上把宏定义的所有字符都大写,当把NULL它赋值给指针时意思为空,当然你也可以把null定义为0了,都一样。
它们都没定义时都只能叫符号了,定义后就有另外的意思了,你把0直接赋值给指针也行,只要指针指向0就为空。
其实NULL在有些编译器中是赋为0了,这时你不能再去#define定义它了,否则就重定义了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慎重还可靠灬宝贝f
推荐于2017-09-03 · TA获得超过12.9万个赞
知道大有可为答主
回答量:1.9万
采纳率:52%
帮助的人:2629万
展开全部
NULL在C/C++标准库中被定义为一个宏,一般为:
#define NULL ((void*)0) /*C中的“标准”写法,NULL被替换为一个void*类型的指针右值,值等于0;由于是void*类型,可以隐式转化为其它类型的指针。
#define NULL 0 //C++,相对C简化定义的原因是C++中void*无法自由隐式转换为其它类型的指针,而字面量0可以隐式转换为指针类型;尽管它实际上可以被作为整数0使用而不引起编译问题,但要注意,从设计目的上而言,NULL应当总是只作为空指针使用。
char c = NULL相当于char c = 0,也就是把c初始化为0。0在这里并不是空指针的意思,而是隐式转换成的字符'/0'——值为0的char字符。在C/C++的一般实现中,这样的行为(值为0的数值类型,无论是void*或int,转换为char的值还是0)是明确的,但这种用法并不恰当。一如LS的错误,ASCII及兼容字符集中数值0对应的字符为null character(null terminator),应该用NUL(没有在标准库中定义,语言中char类型用'/0',wchar_t类型用L'/0')而不是NULL表示。NUL的一个重要应用是作为C风格字符串的结尾标志字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式