null == nullptr
在C++中为什么可以这样进行运算?
晚上好🌙🌙🌙
本答案参考ChatGPT-3.5
在C++中,"null"和"nullptr"都是指一个值为0的指针。然而,它们并不是同一个东西。
"null"指的是没有任何实际意义的数据,它只是C++中的一个常量,用来表示一个空指针。例如,在大多数情况下,一个空指针被认为是NULL,这意味着它没有值,也不能指向任何其他值。
"nullptr"是C++17引入的一个新的类型,用于代替void*。它是空指针的一种更安全的形式。无论你尝试使用某个指针,如果你给它赋值为nullptr,那么它的值就是nullptr,而不是NULL。
在C++中,你不能直接将NULL与nullptr相比较。但是,你可以通过比较两个指针是否都为空来判断NULL和nullptr的差异。如果两个指针都不为空,那么它们就是相同的;否则,它们就不同。
以下是针对以上问题的一些建议:
if (p == nullptr) {
// p为空,因此它是NULL
}