C 为什么在条件语句中放置任何标识符而不给出任何条件?

C 为什么在条件语句中放置任何标识符而不给出任何条件?,c,C,为什么把currX放在这里?它如何影响结果 while(currX)测试currX的真实性。它实际上是while(0!=currX)while(currX)测试currX的真实性。它实际上是的缩写,而(0!=currX)关于条件(currX&&currX->data!=x)的重要一点是&将“短路”,也就是说,如果currX为false(意味着指针为null),则不会计算右半部分,因为整个表达式一定是假的 if(ptr&&ptr->foo)是一种常用的模式,用于防止取消对空指针的引用。关于条件(c

为什么把currX放在这里?它如何影响结果

while(currX)
测试
currX
的真实性。它实际上是
while(0!=currX)
while(currX)
测试
currX
的真实性。它实际上是
的缩写,而(0!=currX)
关于条件
(currX&&currX->data!=x)
的重要一点是
&
将“短路”,也就是说,如果
currX
为false(意味着指针为null),则不会计算右半部分,因为整个表达式一定是假的


if(ptr&&ptr->foo)
是一种常用的模式,用于防止取消对空指针的引用。

关于条件
(currX&&currX->data!=x)
的重要一点是
&
将“短路”,也就是说,如果
currX
为false(意味着指针为空)由于整个表达式必须为false,因此不会计算右半部分


if(ptr&&ptr->foo)
是一种常用的模式,用于防止取消对空指针的引用。

或者也可以很容易地说
while(0!=currX)
while(currX)
的缩写。我们应该记住,在C语言中,关系表达式的计算结果是整数,因此使用关系表达式作为条件的条件语句只是在测试表达式的整数结果的真实性。或者我们也可以很容易地说,
while(0!=currX)
while(currX)
的缩写。我们应该记住,在C语言中,关系表达式的计算结果是整数,因此使用关系表达式作为条件的条件语句只是测试表达式整数结果的真实性。“为什么将currX放在这里?”-->当然看起来像空指针检测。“为什么将currX放在这里?”-->看起来很像空指针检测。
  struct Node *prevX = NULL, *currX = *head_ref; 
  while (currX && currX->data != x) 
 { 
   prevX = currX; 
   currX = currX->next; 
 }