我们如何用 c 写"not equal"?



在一段代码中,我看到了以下短语:

!(word[i]==(tmpP->word[i]))

它等于吗

(word[i] != (tmpP->word[i]))

这两种表达方式有什么区别?

表达式

!(word[i]==(tmpP->word[i]))

在逻辑上等同于表达式

(word[i] != (tmpP->word[i]))

的另一个例子

!( a == b && c == d )

相当于

!( a == b ) || !( c == d )

也就是说,反过来,相当于

a != b || c != d

这两个表达式之间有什么区别?

可以交替使用a != b!(a == b)1。两者都使用a, b一次,并且都计算为值为0或1的int

使用对代码上下文最清楚的一个(通常是第一个,但第二个绑定更紧密。(


我们如何写";不相等";在c?

标准C在<iso646.h>(自C94以来(中有替换拼写宏,包括not_eq

and     &&
and_eq  &=
bitand  &
bitor   |
compl   ~
not     !
not_eq  !=
or      ||
or_eq   |=
xor     ^
xor_eq  ^=

示例

#include <iso646.h>
#include <stdio.h>
#include <time.h>
int main() {
srand((unsigned)time(0));
int a = rand()%2;
int b = rand()%2;
if (a not_eq b) puts("Not equal.n");
else puts("Equal.n");
}

小心使用<iso646.h>,因为宏可能与现有代码名称冲突。


1!的优先级高于!=,因此对于更复杂的表达式,请小心。当有疑问时,使用外部()(a != b)(!(a == b))确实相同。

相关内容

  • 没有找到相关文章

最新更新