指针传参和引用传参比较。 定义一个函数,实现两个参数的交换。在主函数中输入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; 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章