逻辑运算符 &&、|| 的操作数顺序 在 C/C++ 中很重要。
在数学中,逻辑与、或等运算是可交换的。即使我们交换运算符的 RHS 和 LHS,结果也不会改变。
在 C/C++(也可能是其他语言)中,即使这些运算符是可交换的,它们的顺序也很关键。例如看下面的代码,
第一部分pTemp将针对 NULL 进行评估,然后是pTemp->Next。如果先放置pTemp->Next,指针pTemp会被解引用,当pTemp为NULL时会出现运行时错误。
必须遵守命令。事实上,它有助于生成高效的代码。当指针pTemp为 NULL 时,不会计算第二部分,因为 AND (&&) 表达式的结果保证为 0。
// Traverse every alternative node
while( pTemp && pTemp->Next )
{
// Jump over to next node
pTemp = pTemp->Next->Next;
}