这个语句说明了什么,请解释if(!(!x) && x)
#include<stdio.h>
int main(){
int x=5, y=10;
if(!(!x) && x)
printf("%d",x);
else
printf("%d",y);
return 0;
}
最佳答案
if(!(!x) && x)
等同于 if(!!x && x)
。
!!x
如果 x
非零则为 1,如果 x
为零则为 0。
此外,表达式简化为 (!!x)
因为 && x
是重言式,因为 x
是非 volatile
int
类型。但是将值折叠为 0 或 1 正是 if
条件的行为,因此 if
简化为 if (x)
。
关于c - 这个语句说明了什么,请解释 if(!(!x) && x),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62549115/