c++ - 将字符串的地址与 NULL 进行比较

标签 c++

我在审查一些代码时遇到了类似的事情:

std::string mystring;
if (&mystring != NULL)
{
   DoSomething();  
}

这有什么意义吗?有人可以解释一下这个的一些用例吗?

最佳答案

不,在您展示的代码中,比较没有任何意义,并且总是计算为真。

我的疯狂猜测:

  • mystring 最初是一个 char*(可能是 c 代码)。
  • 有人盲目地将其重构为 std::string
  • 这会导致编译器错误并使其停止,地址运算符就位。

编辑: 可能值得仔细查看 DoSomething,以确定代码是否应该改为检查空字符串。但如果代码通过了所有测试,我会说,它更有可能被简单地删除。

关于c++ - 将字符串的地址与 NULL 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37744601/

相关文章:

c++ - 在编译时获取 std::variant 类型

c++ - 涉及继承、指针对象释放以及何时释放的问题

c++ - 用于生成 C++ 代码大纲/ map 的工具 - 有这样的东西吗?

c++ - 使用具有两个动态数组的 Visual Studio 调试器可视化工具提供帮助

c++ - static_cast 是模板吗?

c++ - STL-Like 范围,如果我这样做会出什么问题?

c++ - 如何找到操作系统的名称?

c++ - 在C++中模拟鼠标和键盘输入

c++ - C++ Concepts TS 会启用多参数包吗?

c++ - Windows 7中.exe文件的文件路径