考虑以下代码,对 nullptr
进行指针算术运算是否安全?
我认为在一个 nullptr
上加任何偏移量都会得到另一个 nullptr
,目前 MSVC 生成了我预期的结果,但我对像这样使用 nullptr
是否安全有点不确定。
float * x = nullptr;
float * y = x + 31; // I assume y is a nullptr after this assigment
if (y != nullptr)
{
/* do something */
}
float* a = nullptr; assert(a==nullptr); a++; assert(a!=nullptr);
。在这些编译器中,将某些内容添加到nullptr
并不会导致其变成nullptr
。我不知道这是否属于未定义行为。 - alfC