c++中函数调用时实参作为参数传递给形参有以下三种方式:
1, 传递变量自身
#include<iostream>
int add(int x, int y)
{
int z;
z=x+y;
return z;
}
int main()
{
int a, b, c;
cin>>a>>b;
c=add(a,b);
cout<<"c="<<c<<endl;
return 0;
}
(1)函数add被调用时,形参变量x,y被创建,main函数中变量a,b分别传递给被调函数add中的变量x,y,实参与形参占用不同的存储空间(2)形参变量的值是从实参中一一对应复制得到的 对于大型结构来说,速度太慢,不适用
2,传递变量的地址
#include<iostream>
int fun(char *p)
{ }
int main()
{ ... char si[100]; cin.getline(s1,99); fun(s1);...}
对大型结构来说,传递速度快,适用
3,传递对变量的引用
...
void SwapInt(int &a, int &b)
{ }
void main()
{ ... SwapInt(num1,num2) ... }
当将一个引用作为参数传递时,编译器实际上传递了相应变量的地址。因此,传递引用的效率与传递指针的效率一样高。尤其是在传递大型结构是,此种方法更有效