4>3&&!-5>2
由于 ! 的优先级高于> 和&&,所以先计算!(-5)。
在C中,!()的操作对象只有0和1,如果括号里不为空,不为0或'\0',则任何东西都被认为是1;
所以!(-5)就等价于!(1),也就是0;于是就变成了4>3&&0>2.
又由于&&的级别较低,所以会判断"4>3"和"0>2",前者为1,也后者的值就是&&语句的值。
空字符、空字节、为定义、数值0和'\0'都为假,用数值0表示;其余都为真,用数值1表示。
((!(-5)) -5为真, !就是取反, 那么就是假了;假用0表示, 所以0>2 也就是假了;
逻辑运算符里的非运算>算术运算符>关系运算符>逻辑运算符里的与运算>逻辑运算符里的或运算
!(表达式)
表达式的值 为0
否则
!(表达式)==1
表达式的值 不为0
!(表达式)==0
记住非0就是真