2.6.4 引用调用

2013-10-07 15:28:39 · 作者: · 浏览: 73

2.6.4   引用调用

如果我们用&指定一个函数参数为引用参数,将获得引用调用(Call by Reference)。在引用调用中,引用参数将实际的实参传给函数,而不是实参的一个拷贝。C++(www.cppentry.com)中默认的调用方式和C语言一样,都是传值调用(call by value)。

例2-48

代码

 
中的函数原型
 
指定swap的参数是通过引用传递的。在swap被调用后,swap函数体中的a和b直接对应main函数中的i和j的存储空间(见图2-4)。函数swap并不是对i和j的拷贝进行操作,而是直接操作i和j本身。该程序的输出为
 
 

例2-49

代码

 
中的函数print_row将字符c输出n遍,再输出一个换行符,输出的目的地是与变量out相关的文件。变量out是通过以下引用
 

进行传递。

实际上,变量out绝不能使用传值调用方式,这是因为out与一个具体的文件关联,而输出数据到一个文件时,变量out是必须改变的。而且out也必须了解一些相关细节,如格式信息(域宽,是否忽略空格等)和缓冲区的位置,这样,可正确进行下一次输出。