#include "stdio.h"
int main()
{
int x, y = 5, z = 5;
x = y == z;
printf("%d", x);
getchar();
return 0;
}
(A) 0
(B) 1
(C) 5
(D)编译器错误
答案: (B)
说明:问题的症结在于语句x = y == z。的运算符符==,是因为优先运算符=之前执行(<=,> =和==)比赋值运算符=高。
运算符的结果是0或1根据该比较结果。由于y等于z,表达式y == z的值变为1,并且该值通过赋值运算符赋给x。