/*
02. * Copyright(c) 2015,烟台大学计控学院
03. * All rights reserved.
04. * 文件名称 :mmh.cpp
05. * 作 者 :石超
06. * 完成时间 :2015年 9月27日
07. * 版 本 号 :v1.0
08. *
09. * 问题描述 :用三个版本的交换函数,观察结果。
10. * 输入描述 :两个待交换的整数
11. * 程序输出 :交换后得两个整数
12. */
#include<stdio.h>
void myswap(int x, int y)
{
int t;
17. t=x;
18. x=y;
19. y=t;
20.}
21.int main()
22.{
23. int a, b;
24. printf("请输入待交换的两个整数:");
25. scanf("%d %d", &a, &b);
26. myswap(a,b);
27. printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
28. return 0;
29.}
30.#include<stdio.h>
31.void myswap(int *p1, int *p2)
32.{
33. int t;
34. t=*p1;
35. *p1=*p2;
36. *p2=t;
37.}
38.int main()
39.{
40. int a, b;
41. printf("请输入待交换的两个整数:");
42. scanf("%d %d", &a, &b);
43. myswap(&a,&b);
44. printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
45. return 0;
46.}
47.#include<stdio.h>
48.void myswap(int &x, int &y)
49.{
50. int t;
51. t=x;
52. x=y;
53. y=t;
54.}
55.int main()
56.{
57. int a, b;
58. printf("请输入待交换的两个整数:");
59. scanf("%d %d", &a, &b);
60. myswap(a,b);
61. printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
62. return 0;
63.}
<p>程序1运行结果</p><p>:<img alt="" src="https://img-blog.csdn.net/20150914085657396?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" /></p><p>程序2运行结果:</p><p><img alt="" src="https://img-blog.csdn.net/20150914085732669?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" /></p><p>程序3运行结果:</p><p><img alt="" src="https://img-blog.csdn.net/20150914085758930?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
</p><p></p><p style="color: rgb(51, 51, 51); line-height: 26px; font-family: Arial; font-size: 14px;">知识点总结:通过这次博文 巩固了上年函数传递的方式 从结果中可以知道值传递是无法交换的 我输入 a=5 b=16可是 输出时却 未改变</p><p style="color: rgb(51, 51, 51); line-height: 26px; font-family: Arial; font-size: 14px;">分析原因 可知 调用函数时a的值传给Xb的值传给y 但是只能从实参到形参单项传递 第二种 传地址 将ab的地址传给 p1p2 然后调用函数 p1p2所指向的值 互换 改变 第三种不是很懂 </p>