C语言中,&和&&有什么区别,|和||有什么区别

当x=0,y=-1,z=1时
x&&y
x||y
y&&z
y||z
x&y
x|y
分析以上表达式的值

&:是与的意思
&&:是且的意思
|:是或的意思
||:也叫或

&: 两个数字位操作 AND。或者取某个变量的地址,或声明引用。
对 bit:(0 & x ) = 0; ( 1 & x ) = x;
&&:两个 bool 值的“并且”。( false && x ) = false; (true && x)= x;

|:两个数字 位操作 OR。对 bit: ( 0 | x ) = x; ( 1 | x ) = 1;
||:两个bool 值的“或”。( true || x ) = true; ( false || x ) = x;

逻辑运算与按位运算,不一样的两种运算。
按位运算是把整数的每个二进制位与另一个整数对应的每个二进制位进行运算,是整数到整数的运算。逻辑运算其实是布尔值到布尔值的运算,只不过在C当中,所有非零整数都理解true,所有0都理解为false。所以4 && 2 == 1,其实是4是true,2也是true,与的结果是true,所以是1。而按位操作,4是0b0100, 2是0b0010,它们没有重叠的二进制位,所以结果是4 & 2 == 0



温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-17

区别:

1.运算符性质不同。

&是一个位运算符。

&&是一个逻辑运算符

2.作用不同。

&是将两个二进制的数逐位相与,结果是相与之后的结果。

&&就是判断两个表达式的真假性,只有两个表达式同时为真才为真,有一个为假则为假,具有短路性质。

3.用途限制。

&除了是一个位运算符,也是取地址符。

&&就是一个单纯的逻辑运算符,没有任何其他含义。

参考资料

&-百度百科

&&-百度百科

第2个回答  推荐于2017-11-23
&和|是针对位的操作,&&与||是逻辑操作符
设有变量x和y,则x&y,是先把x与y转换成二进制,再对每一位进行&运算,都为1,则结果为1,否则为0,x|y也是先把x与y转换成二进制,再对每一位进行|运算,只要有一个为1,则结果为1,二个都为0,结果才为0
x&&y,如果x与y都为真(非0),则结果为1,否则为0,x||y,只要x与y中有一个为真(非0),则结果为1,只有两都同时为0,结果才为0本回答被提问者采纳
第3个回答  2016-10-24
&& 是条件判断,返回结果只有1或0(即真或假)
& 是与运算符,就像+-×÷一样可以返回任意位数的结果
假设x,y,z都是8位数

x&&y=0;
x||y=1;
y&&z=1;
y||z=1;
x&y=0000 0000&1111 1110=0;
x|y=0000 0000|1111 1110=1111 1110;
第4个回答  2019-03-11
&是位运算的与,每一位都要进行,&&是表达式的与,操作整个逻辑式,|(或)同理。

C语言中,&和&&有什么区别,|和||有什么区别?
&:是与的意思&&:是且的意思|:是或的意思||:也叫或 &: 两个数字位操作 AND。或者取某个变量的地址,或声明引用。对 bit:(0 & x ) = 0; ( 1 & x ) = x;&&:两个 bool 值的“并且”。( false && x ) = false; (true && x)= x;|:两个数字 位操作 OR。对 bit:...

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

c语言中的&&和||的区别
在C语言中,&& 和 || 都是逻辑运算符,用于连接两个布尔表达式,并判断它们的关系。但是它们之间有一些区别。&&(逻辑与):逻辑与运算符连接两个布尔表达式,并返回true或false。如果第一个表达式为false,则第二个表达式不再计算。例如,以下代码会输出false:在这个例子中,x == 0是false,因此整个...

C语言中的运算符的&与&& 和 |与||有什么区别,用在什么地方
&和|是位运算。&&和||表示逻辑关系,&&和||表达式最终的值只可能是真(1)或者假(0),而位运算表达式的值不限于0和1 两者在特定情况下的效果是相同的。操作方法如下:1、首先这里用到字符的ascii码,A的ASCII码为65,之后用scanf函数进行输入。if设置为嵌套语句,判断输入的字符是不是在A-Z之间...

C语言中的运算符的&与&& 和 |与||有什么区别,用在什么地方
&是 按位与 比如a=0xf0(11110000b),b=0xcc(11001100),那么a&b=0xc0(11000000b),意思就是每组二进制位响应地做与运算 同理 | 是按位取或,a|b=0xfc(11111100b)意思就是每组二进制位相应地做或运算。&&和||就是判断逻辑的与和或,比如(a==b)&&(c==d)意思就是,a等于b,并且c等于d...

C语言中&与&&的区别和1、11的区别
&&和||是逻辑运算符,&和|是位运算符。&&:“与”,仅当左右为真时值为1,否则为0,如2>1&&1>0等于1;||:“或”,仅当左右为假时值为0,否则为1,如1>2||0>1等于0;&:按位与,仅当左右为1是值为1,否则为0,如1&1等于1,1&0等于0;|:按位或,仅当左右为0时值为0,...

&&和||有什么区别?
在C语言中,&和|是位运算符,用于操作二进制数。&运算符用于逻辑与运算,表示“与”的关系。例如,0 & 0的结果是0,1 & 0的结果是0,0 & 1的结果是0,1 & 1的结果是1。如果两个操作数的第n位都为1,那么结果的第n位为1;否则,结果的第n位为0。|运算符用于逻辑或运算,表示“或”...

c语言中&&和||有什么区别吗?
“&&”表示 与,意为同时都要满足。“||”表示 或,意为二者或多着只要满足其中一个。在C语言中,&&和||都属于逻辑运算符,并且都是双目运算符。逻辑运算符总共有3个,分别是"&&"、"||"和"!"。a && b,一假必假,结合性从左至右。||是逻辑或运算符,a || b,一真必真,结合性从左...

C语言中&与&&的区别
在C语言中,"&"和"&&"是两个不同的运算符,它们各自具有独特的性质和用途。首先,让我们来看看它们的区别:1. 运算符性质:- "&"是一个位运算符,它的主要作用是将两个二进制数进行逐位与运算,产生一个新的数,这个结果是原始两个数对应位的逻辑与结果。- "&&"则是一个逻辑运算符,用于...

在C语言中,&与&&的区别是什么?&的功能又是什么?_?
“&&”(逻辑与)是逻辑运算符。 “逻辑与”相当于生活中说的“并且”,就是两个条件都同时成立的情况下“逻辑与”的运算结果才为“真”。“&”是位运算符。与运算(&)双目运算。二个位都置位(等于1)时,结果等于1,其它的结果都等于0。1 & 1 == 1 1 & 0 == ...

相似回答