int i = -1, j = 1, k, l;
k = !i && j;
l = !i || j;
printf("%d %d", i, j); // prints "-1 1"
请向我解释其工作原理,以便我正确理解。
答案 0 :(得分:2)
int i=-1,j=1,k,l;
k=!i&&j;
l=!i||j;
printf("%d %d",i,j);
也不 l 或 k 被打印, i 和 j 不变,因此对于 printf 的观点与
相同int i=-1,j=1;
printf("%d %d",i,j);
或
printf("-1 1");
如果您仍然对 k 和 l 的值感兴趣:
!i&&j
为(!i)&&j
, i 值为-1,所以!i
的值为0(逻辑运算符为false),因此!i&&j
的计算值为错误,因此 k 的值为0 !i||j
为(!i)||j
, i 值为-1,因此!i
值为0, j 为1(对于逻辑运算符),因此!i||j
等于false||true
,因此 l 的值为1或任何非空值答案 1 :(得分:0)
int i=-1,j=1,k,l;
k=!i&&j; // The value of K is not used; the value does not matter
l=!i||j; // The value of L is not used, the value does not matter
printf("%d %d",i,j); // i is -1, j is 1, the output is "-1 1"
输出为:
-1 1
逻辑很简单。