引用变量

引用就是一个变量的别名,声明:

int a = 0;

int &b = a;

b就是a的引用,a和b指向的内存时同一个地址,b可以修改变量的值

一。主要的用途是将引用变量作为函数的参数传递,为什么呢?

(1)对于函数要改变变量的值的情况下,函数进行值传递是不能被改变的,只是创建了一个临时变量,拷贝了原函数的变量值,并不能改变原函数变量的值,可以使用指针进行传递,还有一种方法就是传递引用,也可以用来修改原函数变量的值

eg

void change1(int &a,int &b);
void change2(int *a,int *b);
int main()
{
    int w1 = 200;
    int w2 = 300;
    change1(w1,w2);
    change2(&w1,&w2);
}
void change1(int &a,int &b)
{
    int t;
    t = a;
    a = b;
    b = t;
}
void change2(int *a,int *b)
{
    int t; 
    t = *a;
    *a = *b;
    *b = t;
}

但是可以看出传递引入比较简单,

指针和引用有一个区别就是引用在声明的时候必须初始化,而指针可以声明之后不用初始化,之后再赋值

int a = 10;

int &b;

b = a. 这样是不对的

int *c;

c = &a; 这样是可以的

 

(2)在传递参数的时候,如果不要对原函数中的变量进行修改,可以使用值传递,但是如果要传入的数据类型比较大的话,是很浪费内存的,因为内存要创建一个临时变量进行对原变量进行拷贝,这时可以传递引用过去,而且如果不能被修改,可以声明为const类型的引用,这样原函数的变量将不会被修改

eg. 

void show(const int &a);

 

二。函数返回引用

具体不知道这有啥意义,就是注意,返回的引用,不能是在函数内定义的一个临时变量,因为离开该函数之后,该变量就找不到了,最简单的方法,是返回参数的引用,即将返回值使用引用的参数来返回,当然这个参数不能是const

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值