C语言中 & 和 && 的区别

C语言中,知道=和==的区别..但是&和&&的区别是什么呢??

区别:

1.运算符性质不同。

&是一个位运算符。

&&是一个逻辑运算符

2.作用不同。

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

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

3.用途限制。

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

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

参考资料

&-百度百科

&&-百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-08-18

&和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。

如&&例子中的i++>5被执行了,而i++<9并没有被执行,这就是他们的差别。&例子中的i++>5和i++<9都被执行了。

扩展资料:

1:&&在Java和PHP以及c#中都是逻辑操作符,也叫条件操作符。

2:&&在bat中顺序执行多条命令,执行过程中如命令出错则停止执行之后的命令。

3:c++中也会用&&来指定一个rvalue的引用类型。

4:c语言中&&是一种双目运算符,表示与运算,而当左边所给表达式或变量为0时,不再计算右    侧,整个表达式为零。

参考资料:&&百度百科

本回答被网友采纳
第2个回答  推荐于2017-10-07
“&&”(逻辑与)是逻辑运算符。 “逻辑与”相当于生活中说的“并且”,就是两个条件都同时成立的情况下“逻辑与”的运算结果才为“真”。

“&”是位运算符。

与运算(&)
双目运算。二个位都置位(等于1)时,结果等于1,其它的结果都等于0。
1 & 1 == 1
1 & 0 == 0
0 & 1 == 0
0 & 0 == 0

与运算的一个用途是检查指定位是否置位(等于1)。例如一个BYTE里有标识位,要检查第4位是否置位,代码如下:

BYTE b = 50;
if ( b & 0x10 )
cout < < "Bit four is set " < < endl;
else
cout < < "Bit four is clear " < < endl;

上述代码可表示为:

00110010 - b
& 00010000 - & 0x10
----------------------------
00010000 - result

可以看到第4位是置位了本回答被提问者采纳
第3个回答  2018-07-30

这两个运算符都是二进制的按位操作符。

&: 二进制“与”,如 1010 & 1011 = 1010,1010 & 1000 = 1000。都为1时,结果是1,否则是0

|: 二进制“或”,如 1010 | 1011 = 1011,1010 | 1000 = 1010。有1时,结果是1,都是0时,结果为0。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

本回答被网友采纳
第4个回答  2010-11-12
区别在于
A&B

按位与& 总会计算两个表达式的值

A&&B
而逻辑与&&,如果第一个表达式为假,后面一个表达式就不会计算了;
相似回答