逻辑运算符&&,||的操作数顺序在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,因此不会评估第二部分。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。