if/else逻辑使用NULL

if/else logic using NULL

我不确定我是否理解使用 = NULL 和 != NULL 的条件。

这是

if (somethin->example == NULL) 
{
   do task A 
   return;       
}
    
else
{
   do task B
}

和这个一样吗?

if (somethin->example != NULL) 
{        
   do task B  
}
    
else
{  
   do task A
   return;
}

是的。它们是相同的,唯一不同的是比较顺序(is NULL vs. is not NULL) 以及根据写入的条件和满足的条件在 if 语句下面的操作块的顺序。

if (x == y) {
  do(x);
} else {
  do(y);
}

相同
if (x != y) {
  do(y);
} else {
  do(x);
}

因此不同之处在于,在第一个样本中我们评估 x 等于 y,因此优先级为“等于”,而在第二个样本中我们评估 x 不等于 y,因此优先级发生“不等于”。

是的,它们是等价的。

==!= 的倒数。如果您同时反转条件并交换 ifelse 块,则两个更改会抵消。这些是等价的:

if (a)
{
    foo();
}
else
{
    bar();
}

if (!a)
{
    bar();
}
else
{
    foo();
}