C++基础入门之引用

目录

一.引用

1.1引用和取地址

1.2 别名和原名的区别

1.3 引用的用法

1.31 做参数

1.311 输出型参数:形参改变实参

 1.312 可以减少拷贝,增加效率

1.32 引用的约定

 1. 引用必须初始化

 2. 引用定义后,不能改变指向

4. 给指针取别名

 1.33 引用做返回值

错误示范

传值返回:返回a的拷贝

传引用:返回的是a的别名

 结论:如果返回变量出了作用域(生命周期(局部变量))就销毁,不能使用引用返回。

1.4 引用和指针的区别


一.引用

        引用只是给一个变量重新取了一个名字,取了一个别名,不会给引用重新分配空间。

1.1引用和取地址

引用: 在一个类型的后面加上& 等于一个变量。为取别名

int a = 0;
int& b = a;

取地址:在一个变量前面加上&

cout << &b << endl

1.2 别名和原名的区别

别名=原名。鲁迅就是周树人,他们是等价的,所以对其中一个++,他们都++,所以他们输出的结果是一样的。

int a =0;
int& b =a;
cout << &b <<endl;
cout << &a <<endl;
b++;
a++;

  1.  别名可以有多个。
  2.  可以给别名取别名。

1.3 引用的用法

1.31 做参数

1.311 输出型参数:形参改变实参

例如交换两个数的函数,在C语言中,由于形参是实参的拷贝,所以如果想让形参改变实参就要传地址,然后形参用指针接收

void swap(int* a,int* b)
{
    ...
}
int main()
{
    int x =5;
    int y =6;
    swap(&x,&y);
}

在C++里就不用,直接用别名,因为别名就等价于原名,对别名的改变就等于改变原名

void swap(int& a,int& b)
{
    int tmp = a;
    a = b;
    b =tmp;
}
int main()
{
    int x =5;
    int y =6;
    swap(x,y);
}
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值