C++ 是';空';和';空';相同的?

C++ 是';空';和';空';相同的?,c++,c,C++,C,null和null常量在C/C++中是否完全相同 当我在Visual Studio中编写代码时,我注意到null和null没有得到相同的语法高亮显示,编译结果与在代码的某些部分使用null而不是null不同。它们可能是,也可能不是 < C和C++都定义了 null ,但略有不同。 null不是两个标准的一部分;它既不是关键字也不是保留字,因此可以将其用作变量名、类名和c C++中指针指针空值的首选方法是 NulLPTR < /C> >,它的类型特别是指针空值。 < P> C语言有 null ,

null和null常量在C/C++中是否完全相同


当我在Visual Studio中编写代码时,我注意到null和null没有得到相同的语法高亮显示,编译结果与在代码的某些部分使用null而不是null不同。

它们可能是,也可能不是

< C和C++都定义了<代码> null <代码>,但略有不同。

null
不是两个标准的一部分;它既不是关键字也不是保留字,因此可以将其用作变量名、类名和c


C++中指针指针空值的首选方法是 NulLPTR < /C> >,它的类型特别是指针空值。

< P> C语言有<代码> null <代码>,但没有<代码> null <代码>。代码>空值用于 指出在和讨论指针时定义的宏

讨论
null
字符时使用
null
null
字符指的是
“\0”

如果你想要区别的话,那就把语义排除在外 在
(x='\0')
(x==NULL)
之间,这取决于
x
是什么。 如果
x
char
int
则使用
(x='\0')
,如果
x
,则使用
(x==NULL)
指针。
对于其他你必须考虑的问题 比较是有效的,以及事物将如何转换或提升。

C标准规定:

6.3.2.3/3指针

值为0的整型常量表达式或此类表达式 转换为类型
void*
,称为空指针常量

stddef.h
然后包含该值的
NULL
-定义

C++(另一种与C大致相关的语言,当然不是人们通常认为的)在其早期版本中使用了
NULL
(不要使用它!)。但是在C++11之前的版本中,常量
0
被定义为表示指向零的指针的方式。唉,这有一些严重的缺点,然后C++11定义了
nullptr
常量。请注意,
nullptr
是一个关键字

C++标准说:

2.14.17/1指针文本

指针文本是关键字
nullptr
。它是类型为
std::nullptr\u t
的PR值。[注意:
std::nullptr\u t
是一种不同的类型,既不是指针类型,也不是指向成员类型的指针;相反,此类型的prvalue是一个空指针常量,可以转换为空指针值或空成员指针值。]

3.9.1/10基本类型

std::nullptr\u t
类型的值是空指针常量。这样的 值参与指针和指向成员的指针 转换<代码>尺寸(std::nullptr\t)
应等于
sizeof(void*)

< C++ >关于 NUL/<代码>:

18.2/3类型

宏<代码> null <代码>是一个实现C++定义的空指针常量。< /P>


没有“C/C++”,它们是不同的语言,在本例中的行为也不同。请把你的问题缩小到一种特定的语言。另外,什么是
null
,Java?“编译结果与代码的某些部分中使用null而不是null不同”我认为您回答了自己的相关问题:为了让事情完全清楚,C有null指针、null指针常量、null宏和null终止。所有的意思都不一样。整数常量
0
可以是其中任何一个。我们可以把它写成
00
\0
,也就是八进制符号。当提到空终止符时,我们总是使用八进制表示法,因为我们可以-没有理由这样做。您也可以使用hex
0x0
\x0
,它的意思与上述所有内容完全相同,但如果您使用,我不再知道你指的是什么。你可以在下面找到
null
sea@SombreroChicken:你也可以在周五下午在我的办公室找到它。@SombreroChicken和
seanulls
在海滨我发现了一张很好的带卫生纸卷的照片,解释了空与空的区别_(ツ)_/席@ Bathsheba(你需要标题为ReDistPoST的上下文),实际上,它是与它相关联的ASCII。“如果X是指针,使用(x= null)不是对C++的正确建议。这是不正确的。在C,<代码> \ 0”< /C> >与0完全相同(两者都是代码> int <代码>类型)在C++中,前者是“代码> char < /C> >类型,后者是 int 类型。对于PUB来说,更有趣的事实是:0是八进制文字/常量。NULL终止通常被称为“NUL”,只是不与空指针混合。这不是完全的。C++必须定义NULL,但不允许将其定义为<代码>(Value*)。0。