在C中,给定"Short x=0xFFF0","x&;&;(~x)"的输出是什么. 这个问题是在一次测验中向我提出的,答案是0.尽管在编译时返回1(True).为什么会这样呢?
int main()
{
short x = 0xFFF0;
printf("%X\n", x && (~x));
return 0;
}
我只知道"x=0xFFF0"和"~x=0x000F". 当我们执行"逻辑与"时,它的1&;&;1返回1(真).然而,教授的 idea 与此不同,他指出,应该首先执行0xFFF0&;0x000F=0x0000,这是0(FALSE).这是一个过时的编译器的问题还是无法解释的问题?