C++传递参数的三种方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++传递参数的三种方法类别vc相关

1.使用一般变量传递函数参数

举例:

C++ Code

1 2 3 4 5 6 7 8 9

10

11

12

13

14

15

16

17

18 #include

int swap(int p1, int p2)

{

return p1 + p2;

}

int main(int argc, char *argv[])

{

int a, b;

cin >> a >> b; //输入a,b两个变量的值

cout << swap(a, b); //直接以a和b作为实参调用swap函数//ut<<"a="<

//cout<<"Hello C-Free!"<

return0;

}

如上,直接以一般变量作为参数,同时被调用函数接受值的也为一般变量,这种方式需要用返回值才能将产生的结果输出回;

当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;如果传递的是对象,还将调用拷贝构造函数。因此,当参数传递的数据较大时,需要的空间较大,效率也低。

2.使用指针作为参数

举例:

C++ Code

1 2 3 4 5 #include

void swap(int *p1, int *p2) {

int p = *p1;

*p1 = *p2;

6 7 8 9

10

11

12

13

14

15

16

17

18

19

20 *p2 = p;

}

int main(int argc, char *argv[])

{

int a, b;

cin >> a >> b; //输入a,b两个变量的值

swap(&a, &b); //直接以a和b作为实参调用swap函数 cout << "a=" << a << ",b=" << b << endl;

//cout<<"Hello C-Free!"<

return0;

}

使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用\"*指针变量名\"的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面,在主调函数的调用点处,必须用变量的地址作为实参。

3.使用引用作为参数

举例:

C++ Code

1 2 3 4 5 6 7 8 9

10

11

12

13

14

15

16

17

18

#include

void swap(int &p1, int &p2)

{

int p = p1;

p1 = p2;

p2 = p;

}

int main(int argc, char *argv[])

{

int a, b;

cin >> a >> b; //输入a,b两个变量的值

swap(a, b); //直接以a和b作为实参调用swap函数 cout << "a=" << a << ",b=" << b << endl;

//cout<<"Hello C-Free!"<

return0;

函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作,节省空间,提高效率。

相关文档
最新文档