【发布时间】:2022-01-30 19:09:34
【问题描述】:
假设我有这个 C++ 代码(它来自二叉树问题)
if(t->left != nullptr && t->left->data != t->data)
因为我尝试访问可能是空指针的数据,这不是问题吗?或者它有效吗?因为布尔求值是按特定顺序进行的。
【问题讨论】:
-
看看什么是短路评估
假设我有这个 C++ 代码(它来自二叉树问题)
if(t->left != nullptr && t->left->data != t->data)
因为我尝试访问可能是空指针的数据,这不是问题吗?或者它有效吗?因为布尔求值是按特定顺序进行的。
【问题讨论】:
如果第一个条件的结果为false,则不评估第二个条件。所以它是完全安全的。
【讨论】: