引用---引用型参数

引用型参数

一.函数的形参是实参的别名

•可以将函数的形参声明为引用形式,该形参在参数传递过程中由对应位置的实参初始化,并成为该实参的别名

void fun (int& formal) 
{ 
    cout << &formal << " : " << formal << endl; 
}

–int actual = 10; 
 cout << &actual << " : " << actual << endl; 
 fun (actual);

这里写图片描述

二.在函数中修改实参值

•通过引用型形参,可以在函数体内部修改调用者实参的值,成为除返回值和指针参数之外,第三种由函数内部向函数外部输出数据的途径

double rect (double w, double h, double* c, double& s) 
 { 
    *c = (w + h) * 2; 
    s = w * h; 
    return sqrt (w * w + h * h); 
 }

–   double c, s, d = rect (4, 3, &c, s); 
    cout << "对角线长度:" << d << endl; 
    cout << "矩形的周长:" << c << endl; 
    cout << "矩形的面积:" << s << endl;

三.避免对象复制的开销

•通过引用传递参数,形参只是实参的别名而非副本,这就避免了从实参到形参的对象复制,这对于具有复杂数据结构的参数类型而言意义非常

–struct User 
{ 
    char name[64]; 
    char address[256]; 
    char mbox[128]; 
};

–void insert (User& user) { ... }

–User user = { ... }; 
 insert (user);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值