在C#中&跟&&的区别是什么

如题所述

&是按位与运算符(或取地址运算符),&&是条件与运算符(也叫逻辑与运算符)。


进行与运算时,二者的不同之处在于:

    &可以对两个整型数据,按照二进制位,逐位进行“与”运算,其运算结果为整型,

    &还可以对两个逻辑型数据进行“与”运算,期盼结果为逻辑型数据;

    而&&则只能对两个逻辑型数据进行“与”运算,其运算结果为逻辑型数据。

    例如:

        7&5                   // 结果为 5

        true & true       // 结果为 true

        true && true    // 结果为 true

    &&则有可能只对第一个操作数进行取值,而&则总是对每个操作数都进行取值。

    例1.

        int i=0;

        bool b;

        b = i>0 && ++i>0;

        // 第一个条件就不成立,则不再考虑第二个条件

        //直接得出结果 b=false, 而且 i=0

    例2.

        int i=0;

        bool b;

        b=i>0 & ++i>0;

        // 无论第一个条件是否成立,都会对第二个操作数进行取值,

        // 虽然结果为 b=false,但是 i=1

    &优先级高于&&

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-05
&&是并且的意思 跟||相反,||是或者的意思,而&在其他语言中是和的意思!c#中不太清楚
第2个回答  推荐于2016-03-06
通俗的讲,

&: 可看成加法(a=b&c:可以理解成a=b+c)

&&:可理解成并且运算符(if((a==b) && (d>f)){}: a==b 并且 d>f,才满足条件)

你可以搜一下,其它的运算的算法,应该都有小例子~~本回答被提问者采纳
第3个回答  2010-08-05
& 是逻辑位与运算符,运算后是数值型
&&是逻辑与运算符,运算后结果是布尔型
第4个回答  2011-03-21
&:Address-of(Unary一元) 就是huima80说的有关指针地址的运算符。
&:Bitwise AND 位与运算符,学计算机最基础的会教的。
&:Logical AND 逻辑与运算符,二元,两边的参数都会参与计算。
&&:Conditional AND 条件与运算符,二元,如果左边的满足假,那么右边不用计算,返回假。否则再计算右边。
相似回答