首页 > 解决方案 > 检查2个指针是否为空

问题描述

如果两者都是nullptr,那么检查这种方式是否安全,或者有更好的方法?谢谢你。

#include <iostream>

using namespace std;

int main()
{
    int *x;
    int *y;
    
    if (not (x or y))
    {
      std::cout<<"both are nullptr";
    }
    
    return 0;
}

标签: c++pointersnull

解决方案


首先,您应该使用实际的运算符名称(!||)来增加可读性(在您看来,这样会降低可读性,但是一旦掌握了所有运算符,您会发现这种方式更容易)。

是的,这是检查两个指针​​是否有效的有效方法,但起初有点令人困惑(再次强调可读性)。最好使用&&( and) 运算符:

if (!x && !y)

这将检查 xy 是否都不是空指针。


推荐阅读