C++引用简单学习

1、什么是引用?

引用是给一个已经定义的的变量取别名,而不是定义一个新的变量。

引用定义格式:类型& 引用变量名 = 已定义变量

2、引用的特点有哪些?

1) 多个变量可以引用一个变量

int a = 10;
int& b = a;
int& c = a;
cout<<a<<" "<<b<<" "<<c<<endl; // 10 10 10

2) 引用必须初始化

int& a; // 语法错误

3) 引用只能在初始化的时候引用一次,不能在改变为引用其他的变量

4) 常量不能被引用

int& a = 10; // 语法错误


const int& a = 10; // 正确,常量具有常性,只有常引用可以引用常量
cout<<a<<endl; // 10

3、引用和const

#include <iostream>
using namespace std;

int main()
{
    int a1 = 10;
    cout<<a1<<endl; // 10
    
    const int& a2 = a1;
    cout<<a1<<" "<<a2<<endl; //10 10
    
    a1 = 5;
    cout<<a1<<" "<<a2<<endl; //10 10  ai的值改变,a2的值也会改变
    
    
    const int a3 = 10;
    const int& a4 = a3;
    //int& a5 = a3; // 报错
    const int& a6 = 5; // 常量具有常性,只有常引用可以引用常量
    
    
    float a7 = 10.10;
    //int& a8 = a7; // 报错,a7是float类型,a8是int型,a7给a8赋值会产生一个临时变量,
                // 即a7引用的是这个带有常性的临时变量,所以不能赋值
    const int& a9 = a7;
    return 0;
}

4、引用和指针

引用是变量别名,指针保存变量的地址,二者其实有异曲同工之妙,都是直接指向对象的内存块,但是引用和指针还是有诸多不同。例如

a) 引用必须初始化;指针可以不初始化

b) 引用只能在定义时初始化一次,之后不能改变指向其他变量;指针指向的对象可以改变

c) 引用不能为空,必须指向有效对象;指针可以为空

d) sizeof指针和引用的含义不同。sizeof引用对象得到的是引用所指对象的大小;sizeof指针变量得到的是对象地址大小

e) 引用和指针自增自减意义不同

f) 引用比指针安全

5、使用引用时的注意事项

a) 不要返回一个临时变量的引用

b) 不要返回函数内部new分配的内存的引用

 

  • 33
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值