指针传参和引用传参比较。 定义一个函数,实现两个参数的交换。在主函数中输入3个实数,按升序排序后输出。 1)要求用变量的指针作为函数参数,在被调函数中实现变量值的交换。 2)要求参数为引用类型,在被调函数中实现变量值的交换。
#include<iostream>
using namespace std;
void swap(int *p,int *q){
int temp;
temp=*q;
*p=*q;
*q=temp;
}
void swap1(int &p,int &q){
int temp;
temp=p;
p=q;
q=temp;
}
void change(int *p1,int *p2,int *p3){
if(*p1>*p2) swap(p1,p2);
if(*p1>*p3) swap(p1,p3);
if(*p2>*p3) swap(p2,p3);
}
void change1(int &p1,int &p2,int &p3){
if(p1>p2) swap1(p1,p2);
if(p1>p3) swap1(p1,p3);
if(p2>p3) swap1(p2,p3);
}
int main(){
int a,b,c,*q1,*q2,*q3;
cout<<"请输入三个数:"<<endl;
cin>>a>>b>>c;
q1=&a;q2=&b;q3=&c;
change(q1,q2,q3);
cout<<"使用指针传参排序后:"<<a<<" "<<b<<" "<<c<<endl;
change1(*q1,*q2,*q3);
cout<<"使用引用传参排序后:"<<a<<" "<<b<<" "<<c<<endl;
return 0;
}