我假设将任何偏移添加到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 */ }
由于空指针永远不是对象的地址或对象的地址,因此您的代码永远不会有明确定义的行为.