指針傳參和引用傳參比較。 定義一個函數,實現兩個參數的交換。在主函數中輸入3個實數,按升序排序後輸出。 1)要求用變量的指針作爲函數參數,在被調函數中實現變量值的交換。 2)要求參數爲引用類型,在

指針傳參和引用傳參比較。 定義一個函數,實現兩個參數的交換。在主函數中輸入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; 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章