以下程序运行后的打印结果是 _______(需要写上分析思路)

以下程序运行后的打印结果是 _______(需要写上分析思路)
#include <stdio.h>

int main()
{
int x=10, y=20, t=0;
if (x==y) t=x; x=y; y=t;
printf("%d,%d\n",x,y);
return 0;
}

结果:20,0

if (x==y) t=x; x=y; y=t;

先判断 x==y否? x=10 y =20 所以不相等,因 此执行 

x = y; y = t;

x=10,y=20,t=0,所以最后,x=20, y = 0 所以结果是20,0


关键是理解: if 语句,如果没有花括号,只有后面一条语句是if子句,上面的代码相当于

#include <stdio.h>
int main()
{
    int x=10, y=20, t=0;
    if (x==y) 
{
t=x;
}
x=y; y=t;
    printf("%d,%d\n",x,y);
    return 0;
}追问

也就是说如果没有花括号紧跟条件后面的第一个语句相当于符合条件执行的后面两句为不符合条件执行的?

追答

是的。你真是太聪明了。

追问

哥别这样....

温馨提示:答案为网友推荐,仅供参考
相似回答