unsigned char a = 10,b; b = ~a; printf(” %d \n “,b); 输出: 245 相同的程序,如果我使用int而不是unsigned char ,o / p更改为-11
我遇到一篇文章,其中提到!0的结果与编译器有关。 结果可以是1或FF或FFFF,依此类推。 至于C99标准6.5.3.3一元算术运算符, 逻辑否定运算符的结果! 如果其操作数的值比较不等于0则为0;如果其操作数的值比较等于0则为1.结果的类型为int。 表达式!E等价于(0 == E)。 它真的依赖于编译器吗?