1、实现函数的传值调用,将两个数交换
代码:
#include<iostream>
using namespace std;
void swap(int a,int b)
{
int t;
t=a, a=b, b=t;
}
int main()
{
int x=7,y=11;
cout<<"x="<<x<<" y="<<y<<endl;
swap(x,y);
cout<<"after swap:";
cout<<"x="<<x<<" y="<<y<<endl;
return 0;
}
结果1:
2、函数的传指针调用, 将两个数交换
代码:
#include<iostream>
using namespace std;
void swap(int *a, int*b)
{
int t;
t = *a, *a = *b, *b = t;
}
int main()
{
int x = 7, y = 11;
cout << "x=" << x << " y=" << y << endl;
swap(&x, &y);
cout << "after swap:";
cout << "x=" << x << " y=" << y << endl;
return 0;
}
结果2:
3、函数的传引用调用, 将两个数交换
代码:
#include<iostream>
using namespace std;
void swap(int &a, int &b)
{
int t;
t = a, a = b, b = t;
}
int main()
{
int x = 7, y = 11;
cout << "x=" << x << " y=" << y << endl;
swap(x, y);
cout << "after swap:";
cout << "x=" << x << " y=" << y << endl;
return 0;
}
结果3:
分析:
通过结果看传值调用函数是交换不了两个数的,而传指针和传引用调用函数是可以交换两个数的;为什么呢?因为我们创建变量的时候是存储在一块地址里面的,所以我们要改变原地址上的变量,只能通过改变它的地址来达到这个目的,传值调用只是简单的把变量的值以形参的方式传过去,而传指针和传引用调用都是把变量的地址传过去,交换的是两个数的地址,从而达到交换两个数的值的效果。