C++自主学习日志15
指针作为函数形参传入的应用非常广泛,比如:数组名字作为指针传入等等.
指针作为形参传入的一大好处就在于可以在函数内部改变指针指向的对象!!!注意,这里的重点是指针指向的对象,而不是改变指针本身.
指针和应用作为形参传入看似效果一样:改变指向(引用)的值,但实际上是有着本质的差别!
1.指针作为形参传入还是要经历实参到形参的拷贝,相当于新建了一个指针变量,这个指针变量指向的是原来的地址.
2.引用作为形参传入则无需拷贝,比较省时省力
例题:运用指针来交换函数。
#include<iostream>
using namespace std;
int main()
{ void swap(int *pl, int *p2); //函数声明
int *pointer_l,*pointer_2,a,b; //定义 pointer_1,pointer_2为 int*型,a,b为int型变量
cin>>a>>b;
pointer_l=&a; //使 pointer_1指向 a
pointer_2=&b; //使 pointer_2指向 b
if(a<b) swap(pointer_l,pointer_2); //如果 a<b,使* pointer_l和*pointer_2互换
cout<<″max=″<<a<<″⋅min=″<<b<<endl;//a已是大数,b是小数
return 0;
}
void swap(int *p1, int *p2) //函数的作用是将* pl的值与 * p2 的值交换
{
int temp;temp= *pl; //temp 是整型变量,而不是指针变量
* pl= * p2;* p2=temp;
}
结果max=78;min=45;