当a=1,b=2,c=3时,if(a>c)b=a;a=c;c=b;的执行结果详解

2016-12-02 12:52:43来源:网络收集作者:码农伯伯人点击

一: #include main() { int a,b,c; a=1;b=2;c=3; if(a>c) b=a; a=c; c=b; printf("%d%d%d/n",a,b,c); return 0; }

这个程序的运行结果为:322

解释:

首先需要知道一个前提:if语句在后续的语句不加 {} 的前提下,只负责执行它的下一条语句。

1.因为 if(a>c)的语句不能成立,所以接下来的第一条语句b=a;则不执行,继续执行下面的语句。

那么因为c=3,则a=c;语句的a值最后为3

因为关于b的语句没有执行,所以b的值不变,仍然为2,那么执行语句c=b;后的c的值也为2

所以最后的结果按abc来排序,则为322

二:相比较于上面的程序,这里只更改了一个关系运算符“<”,结果也是不同的。

#include main() { int a,b,c; a=1;b=2;c=3; if(a

1.因为 if(a

继续执行a=c;语句,则最后a的值为3

继续执行c=b;语句,因为此时b的值经过上面的语句已经成为了1,这时候就相当于再把1赋值给c,所以最后的c值为1

最后总的执行结果按abc排序就是:311

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台