引用变量一

c++新增了一个复合类型-引用变量。引用是已经定义的变量的别名(另一个名称)。引用的主要用途是用作函数的形参,通过将引用变量用作参数,函数将使用原始数据,而不是其副本。

1.创建引用变量

c和c++使用&符号来表示变量的地址,c++给&符号赋予了另一个含义,将其用来声明引用变量。例如,将rodents用作变量rats的别名,可以这样做:

int rats;
int & rodents=rats;

其中,int & 指的是指向int的引用,上述声明将rats和rodents互换,他们指向的是同一个地址处的同一个变量。

2.引用的初始化

必须在声明引用时将其初始化,而不能像指针一样,先声明,再赋值。例如,

int rats;
int & rodents;
rodents=rats;   //invalid不合法

3.将引用用作函数参数

引用常被用作函数参数,使得函数中的参数成为调用程序中变量的别名,这种传递参数的方式叫做按引用传递。这是c++新增的特性,是对c语言的超越。下面是一个简单地交换两个变量值的程序:

#include <iostream>
using namespace std;
void swapr(double & x,double & y);
int main()
{
    double a,b;
    cout<<"输入两个数:\n";
    cin>>a>>b;
    cout<<"a= "<<a<<","<<"b= "<<b<<endl;
    cout<<"交换两个数:\n";
    swapr(a,b);
    cout<<"Now,a= "<<a<<","<<"b= "<<b<<endl;

    return 0;
}
void swapr(double & x,double & y)
{
    double temp;
    temp=x;
    x=y;
    y=temp;
}

结果
这里写图片描述

4.引用的属性和特别之处

1.例如以下函数:
double cube(double & a)
{
    a*=a*a;
    return a;
}

输入x=3;则程序运行的结果为27=cube(x);但是注意的是此时,x的值也是27,我们的本意是不修改x的值,如果是按值传递,那么x的值还是3,我们运用的是x的副本。

如果,程序员的意图是让函数使用传递给它的信息,而不对这些信息进行修改,同时又想使用引用,则应使用常量引用。即在此函数中,函数头和函数原型中使用const:double cube(const double & a)。这样做编译器一旦发现代码修改了a的值,将生成错误信息。

2.临时变量、引用参数和const

如果实参和引用参数不匹配,c++将生成临时变量,并让引用指向这个临时变量,当前仅当引用参数为const引用时,c++才会这样做。

  • 什么时候生成临时变量?①实参的类型正确,但不是左值;②实参的类型不正确,但可以转换为正确的类型。

总之,应尽可能地使用const引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值