指針傳參和引用傳參比較。 定義一個函數,實現兩個參數的交換。在主函數中輸入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;
}