C / C++函数参数传递方式
在这种情况下传给形参的是变量的值。传递是单向的,即如果在执行函数期间形参的值发生变化,并不传回给实参,这就是值传递方式。因为在调用函数期间,形参和实参不是同一个存储单元。
void main()
{ void swap(int,int); //参数为整型变量
int i=3,j=4;
cout<<"i="<<i<<",j="<<j<<endl;
swap(i,j);//变量名
cout<<"i="<<i<<",j="<<j<<endl;
}
void swap(int a,int b)
{ //形参为整型变量
int temp;
temp=a;
a=b;
b=temp;
}
结果:
i=3,j=4
i=3,j=4
执行函数swap后,形参a和b的改变不会影响实参i和j的值。
2. 形参为指针变量
形参是指针变量,实参是一个变量的地址,调用函数时,形参(指针变量)指向实参变量单元。
void main()
{ void swap(int *,int *);//参数为整型指针变量
int i=3,j=4;
cout<<"i="<<i<<",j="<<j<<endl;
swap(&i,&j);//变量地址
cout<<"i="<<i<<",j="<<j<<endl;
}
void swap(int *p1,int *p2)
{ //形参为整型指针变量
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
结果:
i=3,j=4
i=4,j=3
调用函数时把变量i和j的地址传送给形参p1和p2,因此*p1和i为同一内存单元,*p2和j是同一内存单元。
这种方式还是值传递,只不过实参的值是变量的地址而已。而在函数中改变的是实参地址所指向的变量的值。
3. 引用形参
int main()
{ void swap(int &,int &);//参数为整型变量的引用
int i=3,j=4;
cout<<"i="<<i<<",j="<<j<<endl;
swap(i,j);//变量名
cout<<"i="<<i<<
CC 函数参数传递方式 来自淘豆网m.daumloan.com转载请标明出处.