C++ 各种运算符的区别
不知道大家是否可以很清楚的将这几个运算符进行很好的区分,我在学习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(true&false),条件不成立
if(a>0&&b>2) 即if(true&&false),条件不成立
& 和 && 在判断语句中都可以实现“和”这个功能,不过区别在于 & 两边都运算,而 && 按照从左向右的顺序进行判断条件是否匹配,若左侧为 false 那么右侧就不运算了。因此从效率上来说,判断语句中推荐使用 &&(换句话就是逻辑运算就老老实实用逻辑运算符,不然它为啥叫逻辑运算符呢?)
而 | 和 || 的比较与上类似,不做赘述。
页:
[1]