Rot*_*ngo -1 c
看看节目 -
#include<stdio.h> int main() { int x=2, y=6, z=6; x = y == z; printf("%d",x); }
我认为输出是6.我认为z的值是6,z等于y.因此y具有值6.并且y(该值为6)被分配给x.所以我认为答案应该是6.但是在执行时我发现答案是1.任何人都可以解释,为什么1是这个程序的输出?
hac*_*cks 8
x = y == z;是由编译器分析为x = (y == z);,因为的运算符优先级的==比的更高=操作者. y == z检查是否y等于,z并根据比较结果产生一个布尔值(0或者1).因为y = 6 = z,y == z返回1引起的价值x是1.因此输出是1.
x = y == z;
x = (y == z);
==
=
y == z
y
z
0
1
y = 6 = z
x
归档时间:
11 年,10 月 前
查看次数:
88 次
最近记录: