其他分享
首页 > 其他分享> > c – “\u0026\u0026”和“和”运算符之间的差异

c – “\u0026\u0026”和“和”运算符之间的差异

作者:互联网

参见英文答案 > Is it okay to use “and”, “or” etc. instead of “&&”, “||”?                                    8个
>            Should “not, and, or, not_eq..” be used in c++                                    5个
我在浏览cppreference时看到了alternative operators(喜欢和,或者不是等等).

它们是&&,||等“普通”操作符的替代品!等等

我检查了程序集中使用&&的代码.和.两个版本都生成相同的程序集.

代码:

#include <iostream> 

int n = 1;
int main()
{
// if(n > 0 && n < 5)
   if(n > 0 and n < 5)
   {
       std::cout << "n is small and positive\n";
   }
}

所以我的问题是:

>&&和&和操作符?
>我在何时何地使用和过度使用&?
>如果没有区别,那么为什么C会引入替代运算符(比如,或者,不是等等)?

解决方法:

What is the difference between the && and and operators?

没有1.这些运算符的“替代”方面意味着它们可用于从语义角度构造完全相同的表达式.

Where and when do I use and over &&?

这在很大程度上是一个偏好问题.我太习惯了&&不使用它,但可以理解是否有人发现并且更具可读性.

why does C++ introduce alternative operators?

C被设计为可在各种字符集和平台上使用.像Bathsheba指出的Trigraphs是这种特征的另一个例子.如果字符集不允许&&要写(因为它根本没有&字符),那么人们仍然可以使用替代表示.如今,这在很大程度上没有实际意义.

1实际上,经过进一步思考,我对你的第一个问题的答案可以得到改进.稍微缺乏等效性,与如何解析令牌有关. &安培;&安培;不需要将空间解析为单独的令牌,而且确实如此.这意味着:

void foo(bool b1, bool b2) {
  if(b1&&b2) { // Well formed
  }

  if(b1andb2) { // ill formed, needs spaces around `and`
 }
}

标签:c,logical-operators
来源: https://codeday.me/bug/20191001/1838865.html