C/C++:看完这篇,| 和 ||,& 和 && 的区别就搞定

本文介绍了C/C++中的逻辑运算符(||, &&)和位运算符(|, &)的区别。逻辑运算符用于布尔表达式,其中&&具有短路特性,提高效率;位运算符按二进制位进行运算,适用于非布尔类型的位操作。在判断语句中,推荐使用&&和||以节省计算资源。" 113684293,10537273,C语言实现MySQL排列组合算法,"['算法', 'C语言', '数据库']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  不知道大家是否可以很清楚的将这几个运算符进行很好的区分,我在学习C/C++过程中,总是会将几个的用法混淆,但困难总是要克服的,那么今天就一起攻克这个难题,将它双双拿下!

我们将 || 和 && 定义为逻辑运算符,而 | 和 & 定义为位运算符

  • && 如果两个操作数都是非0,则条件为真;

  • ||如果两个操作数中有一个任意一个非0,则条件为真;

  • & 按位与操作,按二进制位进行"与"运算,
    运算规则:(有 0 则为 0)

0&0=0;
0&1=0;
1&0=0;
1&1=1;

  • |按位或运算符,按二进制位进行"或"运算。运算规则:(有 1 则为 1)

0|0=0;
0|1=1;
1|0=1;
1|1=1;

在我们明白了几者的区别后,那我们又该在什么时候使用它们呢?在判断语句中,用 | 还是 ||,& 还是 &&?
判断语句中为布尔类型,值只有 true 和 false(变量值为 0—> false,否则为 true)
我们一起看一个例子:a=1 b=2

所以 a>0 为true   b>1 为true   b>2 为 false
if(a>0&b>1)  即if(true&true),条件成立
if(a>0&&b>1)  即if(true&&true),条件成立
if(a>0&b>2)  即if(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值