记得在.net框架下编程,如果要在函数中,修改一个全局变量的值,并保持这个变量的值,有一个办法是在定义函数的形参的时候,指定形参为引用类型。
c++的原理也差不多,不过可以用两种方式实现:
方式一,定义形参为指针类型的形参,比如
int fun(int *p);
在调用函数传递实参的时候,我们得传int类型的变量的指针过去,比如
int a=3,*pRealPra;
pRealPra=&a;
fun(pRealPra);
方式二,定义形参为引用类型的形参,比如
int fun(int &b);
调用方式
int a=3;
fun(a);
如果看不明白,我们也可以写成这样
调用方式二
int a=3;
int &b=a;
fun(b);
小结
可以看到,传递引用要比传递指针的程序更有简单明了,最重要的是,传递引用的时候,形参不需要临时开辟内存单元,节约了空间。