当a=1,b=2,c=3时,if(a>c)b=a;a=c;c=b;的执行结果详解
2016-05-20 16:44
483 查看
一: #include<stdio.h> 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<stdio.h>
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;
}解释:
1.因为 if(a<c)成立,则执行b=a;语句b的值就为1
继续执行a=c;语句,则最后a的值为3
继续执行c=b;语句,因为此时b的值经过上面的语句已经成为了1,这时候就相当于再把1赋值给c,所以最后的c值为1
最后总的执行结果按abc排序就是:311
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Linux C函数参考手册(PDF版)
- C# partial关键字说明
- Lua和C语言的交互详解
- Lua教程(十七):C API简介
- 简单谈谈lua和c的交互
- C#中的委托数据类型简介
- C#编写的艺术字类实例代码
- C#实现打造气泡屏幕保护效果
- 举例讲解C#编程中委托的实例化使用
- 使用C#代码获取存储过程返回值
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C++中explict关键字用法
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解