gpt4 book ai didi

c++ - if (!x) 和 if (x == nullptr) 之间有什么区别吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:24:33 27 4
gpt4 key购买 nike

忽略用户定义的运算符重载,是否存在 if (!x)if (x == nullptr) 的行为不同.或者,相反,在任何情况下 if(x)if (x != nullptr) 的行为不同.

例如标准库中是否有任何类型 !xx == nullptr 的行为不同.

注意:我知道这与 SO 上的许多其他问题非常相似,但相信它仍然值得提出自己的问题。我在这里给出了理由:Are questions about NULL sufficiently different from questions about nullptr?

此外,在该元帖子中,L. F. 指出 std::optional<T*>就是这样一个案例。但是,我很想知道是否还有其他类型,尤其是原始类型和/或指针类型。

最佳答案

对于大多数原始类型,它们是不同的。

例如 bool 值:

!true 有效,而 true == nullptr 格式错误。

关于c++ - if (!x) 和 if (x == nullptr) 之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57930321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com