这个是“或”的意思,还有一个功能类似的符号“|”,其区别如下:
1.if(a==1|b==2)程序执行时,即使a==1为真,即括号内的命题为真,也仍然会检测b==2的真假;
2.if(a==1||b==2)程序执行时,如果a==1为真,即括号内的命题为真,则不会检测b==2的真假。
根据这个区别,一般而言,使用“||”效率更高。不过也有特殊情况,如:
if(a==1||fopen("test.txt","w+"))如果a==1为真,即括号内的命题为真,则不会检测第二个条件是否为真,因而不会执行fopen("test.txt","w+")。如果你本来打算要执行这个语句的话,要不把“||”改为“|”,要不就将整个语句这样写:
FILE *f=fopen("test.txt","w+");
if(a==1||*f)
……
另外,“|”不仅可以表示
逻辑或,还是位移运算的符号。