&:ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfAmpersandOperator.htm
&&:ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfAndAndOperator.htm

解决方案 »

  1.   

    &
    双目运算符,按位与&&
    双目运算符,逻辑与
      

  2.   

    不好意思啊&
    还有当作取地址运算符的时候:)
    呵呵
      

  3.   

    简单说,1>2&1<3和1>2&&1<3简单都是false,但是后者算运算符前面条件表达式为假就不计算后一个条件表达式了,而前者都要计算的。而且&&速度上会更一点(书上讲的).
      

  4.   

    & 是与运算,是一个运算符 它是按bit 进行和运算,这在汇编语言是个必备的
    比如:0xf8 & 0x3f = 0x38
    true & true = true而 && 是只做bool 逻辑与运算,通常用于判断,不进行和运算(无bit 操作)
    true & true = true
      

  5.   

    我就想不通!书上解释的全面呢?还是CSDN上解释的全面?
      

  6.   

    楼上说的对!
    &--左右两边不论真假都会计算;
    &&---如果左边是假的,右边就不计算了,就这一点区别;在Daphi中就只有条件与,用意就是优化程序;注意看看《C#技术内幕》,里面有详细描述!
      

  7.   

    有了高级语言,个个都半路出家,这样是成不了大气的,你们老师不尽责,没有学过逻辑和吗什么叫就这一点区别,区别可大了,bit 运算和逻辑判断到现在已经天差地别了
    就象+ 号和if 的差别一样逻辑或运算,例如:
    byte i1 = 0x03;
    byte i2 = 0x01;
    int i3 = i1 | i2;i1 | i2 的过程是i1 的二进制为 011
    i2 的二进制为 0011V1 = 1
    0V1 = 1
    0V0 = 0所以结果为 011 也就是 0x03而双元逻辑在计算机语言上通常是进行记忆判断,比如i1 = true; i2= false;
    i3 = i1 && i2;当开始i3 赋值时就先开始 记忆第一个参数值 i1 由于它是 true 也就是1 所以后面就不再进行记忆,就返回 true,如果i2 是true 而i1 是false 则它将不记忆i1 取下一个参数i2 它是true 就记忆i2 返回true晕,我也不知道在说什么
      

  8.   

    上例中 i3 = i1 && i2; 应为 i3 = i1 || i2;&& 和 || 一样,而|| 更容易理解
      

  9.   

    你们千万要学好汇编~ 那非常重要,不要被华丽的window 所迷惑~and ax,ax
    or ax,ax
    xor ax,ax这才是真正的电脑界面语言,C# 之类的只能算了外壳,偶还是喜欢汇编,而且crack 是必须要汇编,可能是当时的记忆太美好了,论坛上大多数的星星应该在汇编这二个字上有不少的回忆吧。。呵呵
      

  10.   

    忘了补充 双元运算在vb6 上不是记忆方式,而是并行运算方式,到vb.net 才有andalso 来完成记忆方式,所以后面的表达式如果出错也不要紧,而c 和c# 默认都已经是andalso 了
      

  11.   

    好象还是没说清楚,简单一点的说就是byte i1 = 3;
    byte i2 = 1;
    int i3 = i1 | i2;
    MessageBox.Show(i3.ToString());是bit 的或运算,而将里面的| 换成|| 是不行的,不信自己试,也就是说| 是属于数据运算符,而 || 是属于一种引用逻辑运算的一种机制产物(各自有自己的算法,其中一种常见的就是我说的记忆方式),它没有bit 操作俺好象太罗索了,不说了,只是希望你们别把老本忘了~ 别让人以为中国程序员素质上不如人,这个话题当初在水木上还大吵了一翻,如果你们在校时不学基础,出来了肯定不会花心思去学,那时后悔就晚了