注册 登录
编程论坛 C++教室

解释C语言程序

boby502 发布于 2009-11-13 13:56, 651 次点击
#include <stdio.h>
void main()
{
int x=0,y=1, z=0;
if(x=y=z)
x=3;
printf("%d,%d",x,z);
}
我在做这个程序的时候,得不到结果,然而试卷上的答案是:0,0.
哪个位朋友路过,帮我一下
7 回复
#2
boby5022009-11-13 14:11

帮帮我
#3
qlc002009-11-13 14:41
if(x=y=z)
x=3;
因为你初始化 x=0,y=1, z=0;通过红色的一句话可以知道x=z!=y所以if语句不执行,所以x和z的值都没有变,都是0.
#4
ml2325282009-11-13 16:27
x=y=z
而z=0 故x=y=z=0;if(0)不在执行x=3
故x还是0

#5
flyingcloude2009-11-13 18:03
以下是引用ml232528在2009-11-13 16:27:57的发言:

x=y=z
而z=0 故x=y=z=0;if(0)不在执行x=3
故x还是0
正解
#6
wufei19891212009-11-14 07:32
你把if(x=y=z)改成if(x==y==z) 我想应该可以得到你要的答案
#7
不屈的生命2009-11-14 16:05
这是一个值传递, 从右到左赋值, 相当于if(y=z,x=y);可以尝试输出 y 值, 结果 y 是 0 .判断符号是 ==, !=, >, <, >=, <= 这几个.
#8
平凡不在2009-11-15 15:52
回复楼主:
    x=y=z执行的顺序是先y=z;然后执行x=y;所以可知道,x=y=z的结果是0
1