c++中&和&&有什么区别

二者都有“与”的意思,但想知道他们的用法上的不同点

区别一:意思不同

1、&表示按位与操作。

2、&&表示逻辑与的意思,即为and。

区别二:程序执行的时候不同

1、当运算符&&两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。比如 12&&23的结果就是1,12&&-1 的结果是1,123&&0的结果就是0

2、我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

区别三:&&还具有短路的功能

如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException

扩展资料

C++中的算术运算符包括基本的算术运算符和自增、自减运算符。由算术运算符、操作数和括号构成的表达式称为算术表达式。

基本算术运算符有:+(加)、-(减或负号)、*(乘)、/(除)、%(取余)。其中“-”作为负号时为一元运算符,其余都为二元运算符。

这些基本算术运算符的意义与数学中相应符号的意义是一致的。它们之间的相对优先级关系与数学中的也是一致的,即先乘除、后加减,同级运算自左向右进行。使用算术运算符要注意以下几点:

①“%”是取余运算,只能用于整型操作数。表达式a%b的结果为a/b的余数。 “%”的优先级与“/”相同。

②当“/”用于两整型操作数相除时,其结果取商的整数部分,小数部分被自动舍弃。因此,表达式1/2的结果为0,这一点需要特别注意。

⑧C++中的“++” (自增)、 “--” (自减)运算符是使用方便且效率很高的两个运算符,它们都是一元运算符。这两个运算符都有前置和后置两种使用形式

参考资料来源:百度百科—C++

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-24

c++中&和&&的区别如下:

1、含义上的区别:

&&表示逻辑与的意思,即为and。当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

比如 12&&23的结果就是1,12&&-1 的结果是1,123&&0的结果就是0。

2、运算规则的区别:

表示按位与。&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。二进制与运算规则:1&1=1  1&0=0  0&0=0。

3、特殊用法的区别:

&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。

例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException。

参考资料来源:百度百科-c++运算符

本回答被网友采纳
第2个回答  推荐于2017-11-28
C语言采用了短路方式,如果&&前一个为false,直接退出。所以yanganglove的回答不对。
&&和&的不同在于&&是逻辑运算符,前后跟两个表达式,如果两个都为true,整个结果为true。而&是位运算符,按位进行,比如:
3&5
3的二进制为11
5的二进制为101
011
&101
_____
001
(按每位进行与运算)
所以3&5的结果为1。
位运算符还有|(或)、^(异或)、~(取反)等。
&&和||的优先级是相同的,而!优先级比较高。本回答被提问者采纳
第3个回答  2010-08-03
&&是逻辑与 &是按位与 杰物说的对
第4个回答  2010-08-03
前者是按位与,后者是逻辑与

c++中的&与&&有什么区别呢?
c++中&和&&的区别如下:1、含义上的区别:&&表示逻辑与的意思,即为and。当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。比如 12&&23的结果就是1,12&&-1 的结果是1,123&&0的结果就是0。2、运算规则的区别:表示按位与。&表示按位与操...

c++中&和&&引用工作原理的区别?
&&就是右值引用, &是普通的左值引用, 左值是可以放在赋值号=左边的值, 右值是只能放在=右边的值, 右值没有一个"变量"名字, i+j返回的值可以视作是放在一个临时存放内存空间里的, 这个空间并不能被用来赋值, 你不能写i+j = 5等; &&可以把这种临时的值和存在变量里的值区分开来 常见应用情况...

c++中&和&有什么区别
他们不同点在于&&相当一个开关语句,就是说如果&&前面值为false那么他就不继续执行后面的表达式;而&不管前面的值为什么,总是执行其后面的语句。&可以是取地址运算符也可以是引用符,这就看你在什么情旷下用了;而&&是逻辑与的意思如if((a = 78)&&(b = 77))它不过是个比较运算符...

c++中 &和&&的区别是什么?
&&是且的意思 1 && 0 = 0, 1 && 1 = 1, 0 && 0 = 0,1就是true,而0就是false &是与的意思,a & b就是a和b的每一位都执行我在上一行写的运算 比如a = 11111111 (十进制中的255),b = 00000100(十进制中的4)a & b = 00000100 同理1010 & 1100 = 1000 | 和 ||也有类似...

C++中运算符&和&&、|和||的区别
在C++中,&& 和 || 是逻辑运算符,专用于布尔值的运算,而 & 和 | 则具备逻辑和位运算的双重特性,支持布尔值与整型值的运算。具体而言,&& 和 || 的主要区别在于,前者在判断时,若第一个表达式为假,则整体表达式立即为假,无需计算后续表达式。而后者即使第一个表达式为假,也会继续计算第二...

C语言&和&&的区别,|和||的区别?
1.运算符性质不同。&是一个位运算符。&&是一个逻辑运算符。2.作用不同。&是将两个二进制的数逐位相与,结果是相遇之后的结果。&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。3.用途限制。&除了是一个位运算符,也是取地址符。&&就是一个...

C++中&和&&、float和double的分别
float f=0.236;其实f的值是0.236000000 double b = 0.236;其实b的值是0.23599999999999999 这是因为浮点型数数据的精度问题导致我们看到的和实际的数是不同的 对你补充的代码的&&和&的区别的回答:int main(){ char a=-128;unsigned char b=127;if(a&b)\/\/这里是位运算 cout<<"YES";if(...

&和&&的区别
则会停止后续命令的运行。在C++中,&&也有其特定用途,如用于指定rvalue引用类型,而在C语言中,&&除了作为逻辑与运算符,当左边表达式或变量为0时,会停止计算右侧,整个表达式的结果为0,这体现出与运算的特性。总的来说,&和&&的选择取决于编程需求,理解它们在不同语境下的行为至关重要。

c++中的&&和||分别表示什么意思?
分别是&&和||。c语言中的&&有三种使用方式。1 、取地址操作符。单目运算,与其后的变量或常量组合,用于获取该操作数的内存地址。2 、位操作中的按位与操作 双目运算符,&&的两边的表达式均参与操作。计算时按位计算。对于任意一位,如果两个操作数该位上的值均为1,则结果该位上为1。否则结果该...

C语言&和&&的区别,|和||的区别
&、&&的区别1、最终结果一样。2、&无论左边是false还是true,右边都执行。3、&&具有短路效果,左边是false,右边不执行。4、&&效率更高,项目中推荐使用。|、||的区别1、最总的结果一样。2、|无论左边是false还是true,右边都会执行。3、||具有短路效果,如果左边是true,右边不执行。4、||效果...

相似回答