蓝易云 - C 语言关于 & 与 && 运算符
![蓝易云 - C语言关于&与&&运算符](https://static001.geekbang.org/infoq/72/728c6564e3303f65e799c07f7c16cad1.jpeg)
在 C 语言中,"&"和"&&"是两个具有不同功能的运算符。
"&"是位运算符,用于执行二进制位运算。当两个数值进行"&"运算时,它会分别比较这两个数值的二进制表示中的每一位,只有当两位都为 1 时,结果中的对应位才为 1,否则为 0。例如,假设我们有两个整数 5 和 3,它们的二进制表示分别为 101 和 011,那么"&"运算的结果为 001,即整数 1。
另一方面,"&&"是逻辑运算符,用于执行逻辑与运算。当两个表达式进行"&&"运算时,只有当两个表达式都为真(非零)时,结果才为真。例如,假设我们有两个表达式 expr1 和 expr2,如果 expr1 和 expr2 都为真,则"expr1 && expr2"的结果为真,否则为假。
值得注意的是,"&&"运算符具有短路特性。这意味着,如果左侧的表达式为假,那么不会计算右侧的表达式,因为无论右侧的表达式为何值,整个"&&"运算的结果都为假。
总的来说,"&"和"&&"运算符在 C 语言中扮演着重要的角色,但它们的功能和用途完全不同。"&"运算符主要用于位运算,而"&&"运算符主要用于逻辑运算。
香港五网 CN2 网络云服务器链接:www.tsyvps.com
蓝易云香港五网 CN2 GIA/GT 精品网络服务器。拒绝绕路,拒绝不稳定。
评论