1. 主页
  2. 文档
  3. C语言教程
  4. C语言运算符
  5. 逻辑运算符的操作数顺序

逻辑运算符的操作数顺序

逻辑运算符 &&、|| 的操作数顺序 在 C/C++ 中很重要。

在数学中,逻辑与、或等运算是可交换的。即使我们交换运算符的 RHS 和 LHS,结果也不会改变。

在 C/C++(也可能是其他语言)中,即使这些运算符是可交换的,它们的顺序也很关键。例如看下面的代码,

// Traverse every alternative node
while( pTemp && pTemp->Next )
{
// Jump over to next node
pTemp = pTemp->Next->Next;
}

第一部分pTemp将针对 NULL 进行评估,然后是pTemp->Next。如果放置pTemp->Next,指针pTemp会被解引用,当pTemp为NULL时会出现运行时错误。

必须遵守命令。事实上,它有助于生成高效的代码。当指针pTemp为 NULL 时,不会计算第二部分,因为 AND (&&) 表达式的结果保证为 0。

 

这篇文章对您有用吗?