&&是逻辑与.
A&&B 只有当A和B都为真时,结果为真.否则为假.
A||B是逻辑或, 当A和B都为假时,结果为假. 否则为真.
int a=1,b=2,c=3,d=4;
c=a&&b;= 1&&2=1
d=a||b; =1||2=1
PF
c=!a&&b;=!1&&2=0&&2=0
d=!a||!b; =!1||!2=0||0=0
PF
并且,或者
C语言在进行逻辑与和或运算的特殊性
a && b
如果a为0,则上述表达式的值为0,这时不进行b的运算;只有当a的值为非0时,才进行b的运算。
如:int i=0,j=10;
那么表达式“i && j++”的值为0, i的值为0,j的值为1
而表达式 “i+1 && j++”的值为1,i的值为0,j的值为2
a || b
如果a为非0, 则上述表达式的值为1,这时不进行b的运算;只有当a的值为0时,才进行b的运算。
如:int i=0,j=10;
那么表达式“i || j++”的值为0, i的值为0,j的值为2
而表达式 “i+1 || j++”的值为1,i的值为0,j的值为1