10 C++ 引用

1 C++引用定义:

在C++中,引用变量其实就是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦吧引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。

type &val=test;
参数描述
type引用变量的类型
val引用变量名
test需要应用的变量

在定义引用变量是,需要在变量名前加上&符号

注意事项:

1.&不是取地址运算,而是起标识符作用。
2.类型标识符是指目标变量的类型
3.声明引用时,必须同时对其初始化。
4.引用声明完毕后,相当于目标变量两个名称,即目标的原名和引用名,而且不能再把该引用名在作为其它变量的别名。
5.声明一个引用,不是新定义一个变量,它只表示该引用名是目标变量的一个别名,他本身不是一种数据类型,隐藏引用本身不占储存单元。故对引用求地址,就是对目标变量求地址,&val与&test相等。
6.不能建立数组的引用,因为数组是有若干元素组成的一个集合,所有无法建立一个数组的别名。

#include <iostream>
using namespace std;
 
int main()
{
	int a = 1;
	int&b = a;
	cout <<"a的值:"<<a<<'\t'<<"a的地址" << &a << endl;
	cout << "b的值:" << b << '\t' << "b的地址" << &b << endl;
	b = 3;
	cout << "修改b后" << endl;
	cout << "a的值:" << a << '\t' << "a的地址" << &a << endl;
	cout << "b的值:" << b << '\t' << "b的地址" << &b << endl;
	return 0;
}
}

在这里插入图片描述

2 引用做函数参数

在C++引用的一个重要作用就是作为函数的参数。在C语言中函数参数传递是值传递,如果有大块数据作为参数传递时,采用方案往往是指针,因为这样可以避免将整块数据全部压栈,可以提高程序的效率。
在C++中同样有一种高效率的选择(在某些情况下又是必须的选择),就是引用。

函数参数使用引用旁白:

1.传递应用给函数与传递指针效果是一样的,这时被调函数的形参就是主调函数的实参变量或对象的一个别名来使用,所有对被调函数的形参操作就是对主函数(目标函数)相对应的对象或变量操作。
2.使用引用传递函数的参数,在内存中没有产生实参的副本,它是直接怼实参操作:而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配储存单元,形参变量是实参变量的副本,试过传递的是对象,还将调用拷贝构造函数。因此当传递参数数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。
3.如果既要使用引用提高程序的效率,又要保护传递给函数的数据不被修改,就是要常引用 const type

#include <iostream>
using namespace std;
void fun(int& x, int  y)//在fun函数口处,y被创建.
{
	x = 2;//其实是a的别名,
	y = 4;//y被赋值为5
}
int main()
{
	 
	int a = 8, b = 8;
	cout << "a = " << a <<'\t'<< "b = " << b << endl;
	fun(a, b);
	cout << "after a = " << a <<'\t' << " b = " << b << endl;
	return 0;
}

程序运行后,控制台输出如下图所示:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值