关于C语言的逻辑"非"运算符

# include <stdio.h>

int main(void)

{
int i, j, k;

i = 1; j = 2; k = 3;

for(!(j%i))/*关键在这一句,不看i和j的值,如果j%i的值为2,那么!(j%i)的值是多少?如果j%i的值是-2,那么!(j%i)的值是多少,顺便求“非”的详细说明,约详细越好*/
getchar();

return 0;

}
j%i的值为2,即:j % i == 2;

非运算的结果只有两个,非0得1,非(非0)得0,即:非假即真,非真即假。0表示假,只要不是0的数都表示真!
所以:
不看i和j的值,如果j%i的值为2,那么!(j%i)的值是多少? 是0
如果j%i的值是-2,那么!(j%i)的值是多少, 是0追问

顺带求 非 的详细说明..

追答

非运算的结果只有两个(0和1),非0得1,非(非0)得0,即:非假即真,非真即假。0表示假,只要不是0的数都表示真!---------------这还要怎么详细?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-28
非运算是逻辑运算,返回的是布尔型(Bool)值 也就是只有True和 False 0是false 1是Ture
当运算结果为非0(true)时,使用 非运算 会返回0 (False)
当运算结果为0(False)时,使用 非运算 会返回1 (True)
另外 双等号是表示逻辑判断 意思是是否相等。返回值也是Bool
第2个回答  2014-09-28
都是0;对于所有实数(0除外)都可以看成1(true),而0则看成0(false),所以!1=0,!0=1;也可!(true)=false,!(false)=true;追问

顺带求 非 的详细说明..

相似回答