
unsigned叫无符号用来修饰整数类型只能存 ≥0 的非负数不能存负数。非常容易踩的坑重点无符号数永远不会小于 0unsigned int x 0; x--; if(x 0) // 条件永远不成立unsigned不可能小于0 { printf(x小于0); } // x变成很大的正数不会变成-1有符号和无符号混在一起比较有符号会被自动转成无符号int a -1; unsigned int b 100; if (a b) { // 结果falsea-1被转成巨大无符号数比100大 }-1 在内存里二进制是全部比特置 11111 1111 1111 1111 1111 1111 1111 1111遮住的是\r回车布尔类型使用拆解!age逻辑非。如果age是0→!age 1真如果age不等于 0→!age 0假再拿上面得到的结果只能是 0 或者 1去和 20 比较(!age) 20不管是 0 还是 1都是小于 20这个条件永远成立永远为真。