c++ - 检查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;
}
解决方案
首先,您应该使用实际的运算符名称(!
和||
)来增加可读性(在您看来,这样会降低可读性,但是一旦掌握了所有运算符,您会发现这种方式更容易)。
是的,这是检查两个指针是否有效的有效方法,但起初有点令人困惑(再次强调可读性)。最好使用&&
( and
) 运算符:
if (!x && !y)
这将检查 x和y 是否都不是空指针。
推荐阅读
- c++ - 如何在 C 中继续从用户那里获取值,但当用户没有输入任何值并按 Enter 时停止?
- python - 使用在 docker 容器中运行的 SeleniumWire 和网页设置标头 SeleniumWire
- node.js - process.env.fieldName 返回“未定义”,但该字段存在于 process.env 对象中
- webassembly - Web Assembler 超大显示
- c++ - 如何在静态成员函数中使用其他静态成员——C++
- heroku - 在heroku中添加借记万事达卡
- visual-studio - 从另一个应用程序在 Visual Studio 2019 中打开文件
- python - 重新排序表以获得最小更改
- jmeter - Jmeter - 如何提供从数组到 JDBC 请求的变量(在循环控制器内)
- android - Android ArCore OpenGL 世界到屏幕坐标