相关疑难解决方法(0)

NULL,'\ 0'和0之间有什么区别

在C中,似乎有零各个值之间的差- NULL,NUL0.

我知道ASCII字符的'0'计算结果为480x30.

NULL指针通常定义为:

#define NULL 0
Run Code Online (Sandbox Code Playgroud)

要么

#define NULL (void *)0
Run Code Online (Sandbox Code Playgroud)

另外,也有似乎评价的NUL人物.'\0'0

是否有时候这三个值不相等?

这在64位系统上也是如此吗?

c null pointers

287
推荐指数
6
解决办法
28万
查看次数

在C++ 11中是否将NULL定义为nullptr?

C++ 11实现会定义NULLnullptr吗?

这是由新的C++标准规定的吗?

c++ null nullptr c++11

19
推荐指数
2
解决办法
1万
查看次数

空指针常量 (nullptr)、空指针值和空成员指针值之间有什么区别?

在 ISO/IEC 14882:2017 (C++17) 中,第 5.13.7 节“指针文字”规定:

5.13.7 指针文字 [lex.nullptr]

指针字面量:nullptr

1 指针字面量是关键字 nullptr。它是 std::nullptr_t 类型的纯右值。[注意:std::nullptr_t 是一个独特的类型,它既不是指针类型也不是指向成员类型的指针;相反,这种类型的纯右值是空指针常量,可以转换为空指针值空成员指针值。见 7.11 和 7.12。——尾注]

下面nullptr是一个类型的纯右值std::nullptr_t。类型的纯右值std::nullptr_t是空指针常量;因此nullptr是一个空指针常量。空指针常量(so is nullptr)可以转换为空指针值或空成员指针值。

现在我在 ISO/IEC 14882:2017 的第 7.11 节“指针转换”中提到:

空指针常量是具有零值的整数文字 (5.13.2) 或类型为 std::nullptr_t 的纯右值。空指针常量可以转换为指针类型;结果是该类型的空指针值,并且与对象指针或函数指针类型的所有其他值区分开来。

我知道空指针常量是一个值为 0 或类型为纯右值的整数文字std::nullptr_t,但我不明白与空指针值和空成员指针值的区别。我不明白从空指针常量到指针类型的转换结果如何是“该类型的空指针值”以及该上下文中的空指针值是什么。

我的问题是:

  • 空指针常量(即nullptr)、空指针值和空成员指针值之间有什么区别?

c++ null pointers literals nullptr

6
推荐指数
1
解决办法
273
查看次数

标签 统计

null ×3

c++ ×2

nullptr ×2

pointers ×2

c ×1

c++11 ×1

literals ×1