不(!)和不等于(!=)之间有什么区别是C ++?

时间:2016-06-15 09:15:37

标签: c++ logical-operators

我在哪里使用它们?我是初学者,所以请尽量了解我。 我搜索了一些信息,但我真的找不到任何东西。 我看到了一些像if(!a)这样的部分的代码片段,但是它会如何起作用?是不是像if(a is not a)?那个循环是否会在括号中执行指令吗?

5 个答案:

答案 0 :(得分:4)

如果a是" false"然后!atrue。如果a是"是"然后!afalse

使用!=时,您可以直接与其他值进行比较。例如,如果变量a != 1不等于true,则a仅为1

如果有的话,!a可能等同于a == 0

当然,上面没有提到有关运算符重载的任何内容。如果!有重载运算符!=a,则行为取决于重载运算符实现。

答案 1 :(得分:2)

主要区别在于!用于一个项目,而!=用于两个项目之间。

    表达式的
  1. !通常仅在表达式为布尔值时使用,如:

    bool ok = true;
    ...
    if (!ok) ReportError();
    

    你可以对整数使用! - 但那是特别的:

    • !0变为1
    • ! anything else变为0
  2. !=用于比较两个相似的事物:

    if (i!=5) ReportError();
    if (response!='Y') Quit();
    

答案 2 :(得分:1)

您知道boolean数据类型是什么吗?

大!

现在,如果(a)是if(a == True)的缩写。因此,如果(!a)自然意味着是(a!= True)。

答案 3 :(得分:1)

!运算符表示NOT。 因此,如果x是一个数字:if(x != 3)if(!(x == 3))相同。

所以基本上,如果b是任何布尔表达式/值本身(可以是真或假,可以是不等式或任何其他条件),使用if(b == true)和{{1等同于;因此使用if(b)if(b == false)是因为if(!b)是一个布尔值,就像任何其他条件一样。

回到上一个示例,说b就像在说if(x != 3)

答案 4 :(得分:0)

如果您是初学者,我建议您阅读C Bible" C编程语言--Brian Kernighan和Dennis Ritchie"。

这是语言创作者自己为每个C / C ++程序员编写的好书。