【项目2-引用作形参】
设计一个程序,输入3个整数,将其按从大到小的顺序输出,要求
(1)排序功能通过函数实现,3个整数用3个变量,不必定义数组;
(2)写出两个版本的函数,一个采用传地址值的方法,另一个采用引用类型作参数
参考解答:
在函数调用时,实参的值要传递给形参。当形参是指针时,实参也是指针。形参与实参占用不同的内存空间,但通过传值(传地址值),指向的是同一内存单元。当形参指向的单元的值发生变化,也就是实参指向的空间的变化。
利用指针变量作形参,实现了用调用函数的方法,改变实参的值的目的。
#include <iostream> using namespace std; int main( ) { void sort(int *,int *,int *); int a=2,b=4,c=3; sort(&a,&b,&c); cout<<"sorted order is "<<a<<" "<<b<<" "<<c<<endl; return 0; } void sort(int *i,int *j,int *k) { int t; if (*i>*j) {t=*i;*i=*j;*j=t;} if (*i>*k) {t=*i;*i=*k;*k=t;} if (*j>*k) {t=*j;*j=*k;*k=t;} }
#include <iostream> using namespace std; int main( ) { void sort(int &,int &,int &); int a=2,b=4,c=3; sort(a,b,c); cout<<"sorted order is "<<a<<" "<<b<<" "<<c<<endl; return 0; } void sort(int &i,int &j,int &k) { int t; if (i>j) {t=i;i=j;j=t;} if (i>k) {t=i;i=k;k=t;} if (j>k) {t=j;j=k;k=t;} }
=================== 迂者 贺利坚 CSDN博客专栏================= |== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==| |== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==| |== 我写的书——《逆袭大学——传给IT学子的正能量》 ==| ===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 ===== |