按位或(|)和逻辑或(||)的区别:逻辑或:逻辑或是三种逻辑运算符之一。 逻辑或相当于生活中的或者,当两个条件中有任一个条件满足,逻辑或的运算结果就为真。按位或:按位或运算符是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。当参与运算的是负数时,参与两个数均以补码出现。printf("%d",3|5);输出的结果为7,原因就是3化为二进制为00000011,5化为二进制为00000101,二者进行或运算结果就是00000111,就是十进制的7。同样,按位与也是一样的。按位异或则是相同为假,相异为真。
在逻辑运算符中,如果&&的左值为假,则程序右侧不会被判断。如a=1;b=1;c=a&&(b=3);执行后a为0,b为1,c为0;同样,||也具有相同的特点。