C++ “&”和”&&”的区别
“&”和”&&”运算符在大多数编程语言中都是逻辑与运算符,但在某些情况下它们的行为可能不同。”&”和”&&”都是用于评估条件语句的运算符。这两者之间最基本的区别是”&”运算符既是逻辑运算符又是位运算符,而”&&”运算符只是逻辑运算符。
阅读本文以了解有关这两个运算符的更多信息以及它们之间的区别。让我们从对”&”和”&&”运算符的基本概述开始。
“&”运算符是什么?
“&运算符”是一个逻辑运算符和位运算符。因此,”&”运算符适用于布尔值和二进制数据(位)。当”&”运算符用作逻辑运算符时,它产生TRUE或FALSE结果。如果条件语句的两侧都为真,则结果为TRUE,否则为FALSE。
“&”运算符允许编译器评估条件表达式的两侧。因此,它即使左侧表达式为FALSE,也会评估右侧表达式。
“&”运算符是位与运算符,它对操作数的每个位进行比较。如果第一个操作数的每个位与第二个操作数的相应位都是1,则将相应结果位设置为1。否则,将结果位设置为0。
“&&”运算符是什么?
“&&运算符”纯粹是一个逻辑运算符。因此,”&&运算符”只能用于布尔数据类型,即位。”&&”运算符也称为短路运算符。这是因为它只检查条件语句的左侧。
“&&”运算符是一个逻辑与运算符,它在布尔表达式上执行操作。如果它的两个操作数都为True,则返回True,否则返回False。如果条件语句的左侧结果为FALSE,则不会评估条件表达式的右侧,因为结果已经知道是False。
“&”和”&&”的区别
以下表格突出显示了”&”和”&&”运算符的所有重要区别-
S. No. | “&” 操作符 | “&&” 操作符 |
---|---|---|
1 | 它是一个按位运算符。 | 它是一个逻辑运算符。 |
2 | 它评估表达式的左边和右边。 | 它只评估表达式的左边。 |
3 | 它作用于’Boolean’数据类型(真或假)。 | 它仅作用于’Boolean’数据类型。 |
4 | 它也作用于位。 | 它不作用于位。 |
5 | 它用于检查逻辑条件。 | 它用于检查逻辑条件。 |
“&” 操作符示例 −
#include<stdio.h>
int main(){
int x = 3;
int y = 4;
int z = x & y;
printf ("z = %d", z);
return 0;
}
“&&” 操作符示例 −
#include<stdio.h>
int main(){
int a = 6, b = 3;
printf("%d", a&&b);
return 0;
}
结论
总之,两者之间最显著的区别是”&”运算符是位与逻辑运算符,而”&&”运算符是纯粹的逻辑运算符。