一个空点或空点器
A nullptr or the nullptr
如果我说的是nullptr
,正确的术语是nullptr
(只有一个,所有提及都是对同一事物的引用),还是nullptr
(有几个相同的东西)。
也就是说,函数文档应该说
如果ptr是
nullptr
,则该函数使用内部缓冲区...
或
如果ptr是一个
nullptr
,该函数使用内部缓冲区...
(从学究的角度来看,这不是一个基于意见的问题,因为它可以通过参考nullptr
到底是什么来回答)
标准本身交替使用三种形式,但没有一种是"is a nullptr"或"is the nullptr"。如果你使用这三者中的任何一个,你就是一个很好的公司。
为空
int_type underflow();
7备注:
basic_streambuf
的公众成员只有在gptr()
null 或gptr() >= egptr()
时调用此虚函数
是一个空指针
int sync();
38效果:[...]构造哨兵对象后,如果
rdbuf()
是空指针,则返回-1
。[...]
是nullptr
void lock();
3投掷:[...]
system_error
,如果pm
nullptr
,则错误条件为operation_not_permitted
。[...]
nullptr
是一个关键字,用于指定类型为std::nullptr_t
的 prvalue。因此,在超形式上,指针不能是 [a|the]nullptr
。但是,它可以"为空"(或"具有空值")。
在您的文档示例中,我只想说
如果ptr为空,则函数 ...
请注意,std::nullptr_t
(因此nullptr
)甚至不是指针类型!它是一种特殊类型,可以转换为指向对象的任何指针、指向函数的指针或指向成员的指针。我认为这是不谈论指针nullptr
的额外理由;指针只是空。
说"anullptr
"可能有意义的一种上下文是,每个指针类型都有一个NULL
指针值,并且对于每个实现中的所有类型,这些值不一定相同。 (尽管您必须回到近五十年前的一些过时的计算机才能找到例外。 有人可能会称int* maybe_int_p = nullptr;
为"nullptr
",char* maybe_string_p = nullptr;
为"nullptr
",尽管它们都不完全相同nullptr_t
型常数。 无论如何,我会将其发音与"NULL
指针"相同。
即便如此,你仍然会在明确你的意思的上下文中说"nullptr
"。
至于实际使用情况,Google ngram 查看器找不到任何示例。 正如先前的回答所指出的那样,这两个术语都不是官方术语。 所以没有既定的用法可以遵循,也没有一个听起来对我不利,人们不会有任何困难理解你的意思。 如果您指的是关键字nullptr
,这是一个单例,因此称其为"the"感觉更合乎逻辑。但是使用您喜欢的任何一种。
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 运行同一解决方案的另一个项目的项目
- 挂起和取消挂起一个文件DLL
- 用C++中的一个变量定义一个常量
- 函数向量_指针有不同的原型,我可以构建一个吗
- 在c++中用vector填充一个简单的动态数组
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 预处理器:插入结构名称中的前一个行号
- 我在c++代码中生成了一个运行时#3异常
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- 从链接列表c++中删除一个项目
- 告诉一个 const char 数组,除了编译时 C 样式的字符串外,它不以 '