C++笔记2-对C语言的扩展

本文详细介绍了C++中的引用特性,包括引用的规则、本质、作为函数返回值的情况、指针引用的使用以及const引用的作用和原理。引用在C++中相当于变量的别名,不分配额外内存,常用于参数传递和提高代码可读性。const引用能够保护对象不被随意修改,并允许使用不同类型对象初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、引用的规则
(1)引用没有定义,是一种关系类型声明。声明它和原有某一变量的关系。因此,类型与原类型保持一致,且不分配内存。与被引用的变量有相同的地址。
(2)声明的时候必须初始化,一经声明,不可变更。
(3)可对引用,再次引用。多次引用的结果,是某一变量具有多个别名。
(4)&符号前有数据类型时,是引用。其它兼为取地址。

2、引用的本质
(1)引用在C++的内部实现是一个常指针,因此引用所占用的空间大小与指针相同。
Type &name <==> Type *const name
( 2)间接赋值的3个必要条件
1)定义两个变量,一个实参一个形参
2)建立关联:实参取地址给形参
3)*p形参去间接的修改实参的值
当实参传给形参引用的时候,C++编译器帮程序员手工取了一个实参地址,传给了形参引用(常量指针),并且使用形参时自动帮我去取内容。
C语言常指针赋值实现:
void func(int *const a)
{*a=5;}
C++引用赋值实现:
void func(int &a)
{a=5;}

3、引用作为函数的返回值
若返回栈变量:不能成为其它引用的初始值,也不能作为左值使用。
若返回静态变量或全局变量:可以成为其他引用的初始值,即可作为右值使用,也可作为左值使用。
 sad

4、指针引用
指针引用可以代替二级指针使用,使程序更加简单
在这里插入图片描述

5、const引用
const引用可以防止对象的值被随意修改。
(1)const对象的引用必须是const的,将普通引用绑定到const对象是不合法的。例如:
const int a=1; int &b=a;这种写法不合法,编译不过
(2)const引用可使用相关类型的对象(常量、非同类型的变量或表达式)初始化。这个是const引用于普通引用最大的区别。例如:
const int &a=2; double x=3.14; const int &b=a;都是合法的。

6、const引用的原理
const引用的目的是:禁止通过修改引用值来改变被引用的对象
1)const int &e 相当于const int *const e即指向常变量的常指针
2)普通引用相当于 int *const e即常指针
3)当使用常量(字面量)对const引用进行初始化时,C++编译器会为常量值分配空间,并将引用名作为这段空间的别名。
4)使用字面量对const引用初始化后,将生成一个只读变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值