本帖最后由 马晓凤 于 2013-7-27 18:21 编辑
&:
1 &是位运算,按位与,参与运算的一般是两个整数。例如:5 & 3,由于5的二进制码是0101,3的二进制码0011,那么0101 & 0011 = 0001,所以结果就是1。
2 &也可以用作两个bool型数据的运算,同样,当两边都是ture,结果才是true,不过&在bool型数据运算时,不存在快速运算法则。比如:x&y:即使x是false,也会计算y表达式的
3 作为一元运算符时,(&) 也可作为一元运算符,返回操作数的地址
&&:&&有一个快速运算法则:当&&的左边计算的结果是false,那么无论右边表达式的结果是什么,&&的结果一定是false,此时,&&右边的表达式根本不会去运算。如果此时&&右边是一个函数调用,那么这个函数就不会被调用。(和&的区别) class Test
{
static bool fn1()
{
Console.WriteLine("第一个操作数执行了");
return false;
} static bool fn2()
{
Console.WriteLine("第二个操作数执行了");
return true;
} public static void Main()
{ Console.WriteLine("result is {0}", fn1() & fn2());
Console.WriteLine("result is {0}", fn1() && fn2());
Console.ReadKey();
}
|和||同理
| 操作符
1 对于整型,| 计算两个操作数的按位“或”结果。
2对于 bool 操作数,| 计算操作数的逻辑“或”结果;只有当两个操作数均为 false 时,结果才为 false。不存在当第一个操作数为true时就不计算第二个了
||
bool 操作数,只要第一个为true,第二个就不计算了
|