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