函数的参数传递有以下几种情况:
1,将变量名作为实参:只会改变形参的值,实参的值不会改变;
2,传递变量的指针:看一张图就可以明白了,不难看出,指针变量作为形参,p1、p2存储的是a、b的地址,*p1相当于变量a,*p2相当于变量b。a、b的地址并没有改变,改变的是地址中存储的值。这里说一下,编译器都是通过变量名去检索其地址,然后读取地址中的值。
3,传送变量的别名:`
#include
using namespace std;
void swap(int &a,int &b){
int temp;
temp=a;
a=b;
b=temp;
}
int main(){
int i=3,j=5;
swap(i,j);
cout<<“i=”<<i<<" "<<“j=”<<j<<endl;
return 0;
}
`
把变量的引用作为函数形参,也就是a、b是I、j的别名,a、b不开辟新的存储单元,和其引用代表同一存储单元。因为它们指向同一地址,交换形参的值,实参的值也会变化。
——————————————————————————————————————————
有错误请指出。## 标题