C语言里的&和&&有什么不同?

(&)逻辑与
(&&)位逻辑与
区别在什么地方?
可以的话详细说明一下

&&才是逻辑与,常用于表达式之间,比如x=x-1&&y=y+0就是真和假相与,结果为假(即0)

而&是按位与,用于两个二进制数之间逐位求与,比如二进制数0110&1100的结果就是0100 。
另外&可以作地址符(更常见的应用),格式:&变量名。
比如int &a的意思就是地址a中存有整型变量
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-12
首先,你说反了。&是按位逻辑与,&&是逻辑与。
区别如下:
如果a=5,b=6,

1、a & b=4
因为a的二进制为0000 0101,b的二进制为0000 0110,按位相与,结果为0000 0100,即4。
2、a && b=1
因为a和b都非0,&&两边的值都不为0,所以结果为1。本回答被网友采纳
第2个回答  2010-08-12
c语言里是&地址符
c++里是&引用
而&&是逻辑运算符,"&&"是"并且"的意思
第3个回答  2010-08-12
C语言中
&通常被叫做 取地址符scanf("%d",&a);

在位运算符号中有&符号用来表示 按位与 3&5

&& 通常被叫做 并且符 常出现在判断语句中作为判断条件出现

if(a>1&&b>1)

&& 2边条件必须都满足 判断语句才返回真值。
第4个回答  2010-08-12
&是按位逻辑与一般用于位运算
举例如下 :
BYTE bNum = 0xB3;
if(bNum & 0x01)
{
............
}
&&是逻辑与,一般用于判断条件
举例如下 :
if((bNum == 1) && (i == 2))
{
.............
}
相似回答