& 是与运算. . 这个你应该知道吧. . 也可以代表逻辑与. . 就是说 & 左右两边的表达式同时是真的时候才为真. .. . 它与 &&的关系是 . . &&是短路与.. . 比如说. ..exp1 && exp2 一旦 左边表达式返回false了 右边表达式就不会执行. .. 称为短路与.. 而 & 不会. .即使左边返回false右边也会执行..
相反的 | 和 || 是短路或 和或的关系
说的简单点,&&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式
而&都要计算
& 和 && 简单的
if( 1==2 && 2==2 ){ } //程序顺序执行到1==2 && 就不会去管后面的 2==2的判断了 因为已经false了
if( 1==2 & 2==2 ){ } //程序顺序执行到1==2 & 还是会去执行后面2==2的判断
|| 和 | 基本和上面一样