C++ 引用(自学自用)

2 引用

2.1 基本使用

引用的作用:为变量起一个别名

int a = 10;
int &b = a;

2.2 引用注意事项

  1. 引用上来就必须初始化
  2. 一旦初始化后就不能更改

2.3 引用做函数参数及3中传递方式的区别

调用函数,传递参数的方式

  1. 值传递(形参不可以修饰实参)

  2. 传地址

  3. 传引用:简化指针传递

void swap01(int a, int b)
{
    // Pass value
    int temp = b;
    b = a;
    a = temp;
}

void swap02(int *a, int *b)
{
    // Pass Address
    int tem = *b;
    *b = *a;
    *a = tem;
}


void swap03(int &a, int &b)
{
    // Pass Reference
    int temp = b;
    b = a;
    a = temp;
}

当引用作为形参时,就是给传入的数起一个新的名字,并将改名字指向传入的数字的地址

2.4 引用做函数的返回值

  1. 不要返回局部变量的引用
  2. 函数的调用可以作为左值
int& test01()
{
    int a = 10;
    return a;
}

int& test02()
{
    static int a = 10;
    // 静态变量存放在全局区,全局区的数据程序结束后系统释放
    return a;
}


int main()
{
    // int &ref = test01();
    // cout<<ref<<endl;
    // cout<<ref<<endl;
		
    int &ref = test02();
    cout<<ref<<endl;
    test02() = 20;
    cout<<ref<<endl;    
    return 0;
}

2.5 引用的本质

本质:引用的本质在C++内部实现是一个指针常量

指针常量:指针的指向不可以修改 ( 但是其内容可以修改,一旦初始化指向不能发生改变 )

常量指针:指针的指向可以修改 ( 指针指向的值不能修改 )

int a = 10;

int &ref = a;
ref = 20;

int* const ref = &a;
*ref = 20;

2.6 引用常量

**作用:**常量引用主要用来修饰形参,防止误操作

在函数形参列表中,可以加const修饰形参,防止形参改变实参

加上const后,一旦修改立刻会报错

2.7 常量指针和指针常量

int a 
const int *p = &a; // 常量指针
int* const p = &a; // 指针常量
const int * const p = &a; 

常量指针特点:指针的指向可以修改,但是指针指向的值不可以修改

指针常量特点:指针的指向不可以改,指针指向的值可以改

const即修饰指针又修饰常量: 指针的指向和值都不可以改变

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值