C语言中运算符问题?
逻辑运算符中,按优先级排列为:!(非,即相反) &&(与,即并) ||(或,即任选其一,优先选真即1,只要两者中有一是真,则整个式子值就是真)
在判定一个运算分量的值为“真”或“假”时,以运算分量的值不等于零为“真”, 运算分量的值等于 0 为“假”。
所以在
①m本身是真,非真当然就是假,即为0;
②n本身是假,非假当然就是真,即为1;
③m本身是真,两次非后就是最初值的真(!(!m)=!0=1),!n=1(同②)即1+1=2;
④!m&&n=(!m)&&n=0&&0=0
⑤m||n=1||0=1(见上对或的解释)
⑥m&&!n||n=(m&&(!n))||n=(m&&1)||n=(1&&1)||n=1||0=1