/*
* Copyright (c++) 2015 烟台大学计算机学院
* All right reserved.
* 文件名称:test.cpp
* 作 者: 商文轲
* 完成日期:2015年9月7日
* 版 本 号:v1.9
*
* 问题描述:交换两个整形变量
* 输入描述:两个整数
* 程序输出:交换后的两个整数
*/
/* (1) 传值
结果:交换成功
分析:实参a,b将值分别传给形参x,y后,myswap函数将x,y的值交换,交换后的值无法再传给a,b。
*/
#include<iostream>
using namespace std;
void myswap(int x, int y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b,x,y;
cin>>a>>b;//输入两个整数
myswap(x,y);
cout<<a<<" "<<b;
return 0;
}
/* (2)传址
结构:交换成功
分析:形参x,y作为指针,指向a,b的地址,使用myswap函数将a,b地址交换。
*/
#include<iostream>
using namespace std;
void myswap(int *p1, int *p2)
{
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
int main()
{
int a,b,x,y;
cin>>a>>b;//输入两个整数
myswap(&x,&y);
cout<<a<<" "<<b;
return 0;
}
/*(3)引用做形参
结果:交换成功
分析:x,y分别为a,b引用,x和a占用内存相同,y和b占用内存相同,交换x,y占用空间即交换a,b占用空间。
*/
#include<iostream>
using namespace std;
void myswap(int &x, int &y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a,b,x,y;
cin>>a>>b;//输入两个整数
myswap(x,y);
cout<<a<<" "<<b;
return 0;
}