引用---引用型参数

引用型参数

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

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

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

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

引用---引用型参数_第1张图片

二.在函数中修改实参值

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

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);

你可能感兴趣的:(c++)