慕莱坞森
&是按位与运算符(或取地址运算符),&&是条件与运算符(也叫逻辑与运算符)。进行与运算时,二者的不同之处在于:&可以对两个整型数据,按照二进制位,逐位进行“与”运算,其运算结果为整型,&还可以对两个逻辑型数据进行“与”运算,期盼结果为逻辑型数据;而&&则只能对两个逻辑型数据进行“与”运算,其运算结果为逻辑型数据。例如: 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&优先级高于&&