1、C/C++语言中函数参数传递的三种方式
C语言提供了两种函数参数传递的方式:传值和传地址。在C++中,又拓展了引用方式。通过本项目,确认自己已经掌握了这三种方式的原理,为后续学习做好准备。
下面是希望能够交换两个整型变量的swap函数的三个版本
//(1)传值
#include <iostream>
void swap(int a, int b)
{
int temp;
temp=a;
a=b;
b=temp;
}
//(2)传地址
#include <iostream>
void swap(int *p1, int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
//(3)引用作形参
#include <iostream>
void swap(int &a, int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
int main()
{
int a, b;
printf("请输入待交换的两个整数:");
scanf("%d %d", &a, &b);
__________________; //分三个程序,分别写上调用swap的合适形式
printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
return 0;
}
请编制三个程序,分别调用三个版本的交换函数,观察结果。请通过调试窗口单步进入观看每个变量的变化过程,展示程序及运行结果,解释成功交换以及交换不成功的原因。
附:Dev-C++ 调试方法简明图文教程
http://www.worlduc.com/blog2012.aspx?bid=62732028
如有问题请打开视频 1.5
2、对一个数据序列,设计一个算法计算它们的最大值和最小值。
//对一个数据序列,设计一个算法计算它们的最大值和最小值
void compute(ElemType a[],int n,ElemType &max,ElemType &min)
{
max=min=a[0];
for(int i=1;i<n;i++)
{
if (a[i]>max)
max=a[i];
if (a[i]<min)
min=a[i];
}
}
请写出主函数调用它。要求每个同学要能够参考完这个算法后,自己编写。
如有问题请打开视频 1.5