引用——&

本文详细介绍了C++中的引用概念,包括其定义、用法特点,如与值传递的区别,以及常量引用、函数参数引用和返回值引用的应用。同时,对比了引用与指针的异同,强调了引用在内存效率和使用上的优势。
摘要由CSDN通过智能技术生成

概念

定义:引用是为已存在的变量取别名,共用同一块内存空间

用法:类型 & 引用变量名 = 引用实体

int b = 1;
int& a = b; //a就是b 同名
int c = 3;
= c;
cout << b; //b==3 

引用是用指针实现的

特点

  • 引用实体和引用类型必须是同种类型
  • 引用在定义时必须初始化 且不能初始化为空
  • 不能改变引用关系

用法

const与引用

        被const修饰的变量其引用也必须被const修饰

	const int a = 1; 
	int& b = a;		//报错 需要const
	const int& c = a;//表示不能通过c修改 

参数与引用

作为函数参数  在函数内部能直接对原数据进行修改 提高函数调用和运行效率

        区别于值传递  值传递机制”形参=实参“ 产生的实参的副本

        而将引用作为函数参数,不用经过值传递机制,省去了传值和生成副本的时间和空间消耗,提升效率

void swap(int &a,int &b) {
	int c = a;
= b;
= c;
}
int main() {
	int a = 1, b = 2;
	swap(a,b);
    cout << a << " " << b << endl;//a==2 b==1
}

返回值与引用

        返回值为引用的好处:在内存中不产生被返回值的副本 提高函数调用和运行效率

int& fun(int& a) { //返回的仍是原来的a
= 2;
	return a;	
}
int main() {
	int a = 1;
	fun(a);
	cout << a << endl; //a==2
}

引用与指针的区别

  • 引用定义时必须初始化,且不能为NULL,指针可以
  • 引用不能改变引用关系,指针可以
  • 引用只是变量的别名,不需要分配空间,而指针是一个实体,需要分配内存空间
  • 指针用sizeof计算大小结果不同,32位内存下是4字节,64位内存下是8字节,引用sizeof结果为类型大小
  • 有多级指针,没有多级引用
  • 引用++和指针++含义不同,指针自增是地址上的计算,引用自增单纯对数据+1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值