首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nullptr或nullptr

nullptr或nullptr
EN

Stack Overflow用户
提问于 2018-05-18 12:27:32
回答 3查看 1.6K关注 0票数 15

如果我说的是nullptr,正确的术语是 nullptr (只有一个,所有提到的都是对同一事物的引用),还是a nullptr (有几个相同的东西)。

也就是说,函数文档应该说

如果ptr是nullptr,则函数使用内部缓冲区.

如果ptr是nullptr,则函数使用内部缓冲区.

(从学究上讲,这不是一个基于意见的问题,因为它可以通过引用确切的nullptr来回答)

EN

回答 3

Stack Overflow用户

发布于 2018-05-18 12:38:32

标准本身可互换地使用三种形式,但没有一种是“是nullptr”或“是nullptr”。如果你使用这三种方法中的任何一种,你就有了很好的伙伴。

为空

int_type底流(); 注:只有当basic_streambuf为null或gptr() >= egptr()时,gptr()的公共成员才调用此虚拟函数

为空指针。

int同步(); 38效果:.构造哨兵对象后,如果rdbuf()是空指针,则返回-1。..。

nullptr

空锁(); 3抛出:. system_error,如果pmnullptr,则错误条件为operation_not_permitted。..。

票数 24
EN

Stack Overflow用户

发布于 2018-05-18 12:31:02

nullptr是一个关键字,它指定std::nullptr_t类型的prvalue。因此,指针不可能是nullptr。但是,它可以“是空的”(或者“有空值”)。

在您的文档示例中,我只想说

如果ptr为空,则函数..。

请注意,std::nullptr_t (因此nullptr)甚至不是指针类型!它是一种特殊类型,可以转换为指向对象的任何指针、指向函数的指针或指向成员的指针。我认为这是不谈论指针是nullptr的额外理由;指针只是null。

票数 15
EN

Stack Overflow用户

发布于 2018-05-18 16:55:39

说“一个nullptr”可能有意义的一个上下文是,每个指针类型都有一个NULL指针值,而对于每个实现中的所有类型,它们不一定是相同的值。(尽管你必须回到近50年前的一些过时的计算机中,才能找到例外。)有人可能会称int* maybe_int_p = nullptr;为“anullptr”和char* maybe_string_p = nullptr;为“a nullptr”,尽管两者都与nullptr_t类型的常数完全相同。无论如何,我会把它发音为“一个NULL指针”。

即便如此,您仍然会在明确您的意思的上下文中说“nullptr”。

至于实际使用情况,Google ngram查看器找不到这两种方法的任何示例。正如先前的一个答复所指出的那样,这两个词都不是官方术语。因此,没有既定的用法可遵循,没有一个听起来像我,人们不会有任何困难,理解你的意思。如果您指的是关键字nullptr,这是一个单例,所以称它为“the”更符合逻辑。但你想用哪种就用哪种。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50411338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档