- /*
- *Copyright(c)2017,烟台大学计算机学院
- *All right reserved.
- *文件名称:1.cpp
- *作者:侯成健
- *完成日期;2017年9月7日
- *版本号;v1.1
- *
- *问题描述:通过输入两个整数,编写三个版本的交换函数,通过分别调用三个版本的交换函数,观察输出结果
- *输入描述:两个需要交换的整数
- *程序输出:交换后的两个整数
- */
问题及代码
//(1)传值
- #include<stdio.h>
- void myswap(int x, int y)
- {
- int t;
- t=x;
- x=y;
- y=t;
- }
- int main()
- {
- int a, b;
- printf("请输入待交换的两个整数:");
- scanf("%d %d", &a, &b);
- myswap( a,b ); //分三个程序,分别写上调用myswap的合适形式
- printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
- return 0;
- }
- 运行结果:
//(2)传地址
[cpp] view plain copy
- #include<stdio.h>
- void myswap(int *p1, int *p2)
- {
- int t;
- t=*p1;
- *p1=*p2;
- *p2=t;
- }
- int main()
- {
- int a, b;
- printf("请输入待交换的两个整数:");
- scanf("%d %d", &a, &b);
- myswap(&a,&b); //分三个程序,分别写上调用myswap的合适形式
- printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
- return 0;
- }
[cpp] view plain copy
- 运行结果:
//(3)引用作形参
-
#include<stdio.h>
-
void myswap(int &x, int &y)
-
{
-
int t;
-
t=x;
-
x=y;
-
y=t;
-
}
-
int main()
-
{
-
int a, b;
-
printf("请输入待交换的两个整数:");
-
scanf("%d %d", &a, &b);
-
myswap(a,b); //分三个程序,分别写上调用myswap的合适形式
-
printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
-
return 0;
-
}
-
运行结果:
知识点总结:
指针与引用能成功交换所提供的数据。
学习心得:
掌握指针与引用的操作方法对问题的解决很有帮助。