我正在学习C中的链表,我遇到了一个我不明白的错误.在我下面粘贴的代码片段中,当我有while(a && b)时,我得到一个无限循环,但是当我运行while(b && a)时,程序可以运行.我是C的新手,不明白为什么我在第一种情况下得到无限循环.
这给了我一个无限循环:
while((*searchNodePtr).data != dataValue && searchNodePtr != NULL) {
prevNodePtr = searchNodePtr;
searchNodePtr = (*searchNodePtr).next;
}
Run Code Online (Sandbox Code Playgroud)
但这可行(在条件操作数时交换):
while(searchNodePtr != NULL && (*searchNodePtr).data != dataValue) {
prevNodePtr = searchNodePtr;
searchNodePtr = (*searchNodePtr).next;
}
Run Code Online (Sandbox Code Playgroud)
任何澄清将非常感激.谢谢.