C++基础(二)引用是什么?

引用的概念

引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空 间,它和它引用的变量共用同一块内存空间

举例来说:每个人也许都过被朋友起外号的经历,叫这个外号或你的名字都是在叫你。

引用也是如此,它就相当于它所引用的变量的外号,也就是一块空间有两个名称。

好,废话不多说,上代码来看:

int main()
{
	int a = 1;
    //别名的使用:int&
    //注意:引用类型必须和引用实体是同类型的
	int& b = a;//b是a的别名,相当于a与b共同指向一块空间

	//打印a,b的地址,看是否都指向同一块空间。
	cout << &a << endl << &b << endl;
	return 0;
}

 使用引用要注意:

1. 引用在定义时必须初始化

如果,不初始化,C++的编译器就不知道这个引用是谁的引用。

如:

2. 一个变量可以有多个引用

就好像,一个人可以有多个外号。

如:

int main()
{
    
    int a = 10;
    int& b = a;
    int& c = a;
    int& d = a;
    cout << &a << endl << &b << endl;
    cout << &c << endl << &d << endl;
    return 0;
}

3. 引用一旦引用一个实体,再不能引用其他实体

4.区分引用和赋值 

5.常引用

int main()
{
	const int a = 10;
	//int& ra = a;   // 该语句编译时会出错,a为常量

	const int& ra = a;
	// int& b = 10; // 该语句编译时会出错,10为常量

	const int& b = 10;
	double d = 12.34;
	//int& rd = d; // 该语句编译时会出错,类型不同

	const int& rd = d;

	return 0;
}

这里涉及到权限的问题,比如:常数是不可以被修改的,所以不能用:int&这种引用,需要加上const 修饰才可以。你不能说,你自己不能被修改,结果换了个名就可以修改了,这是不对的。你以为脱了马甲,编译器就不认得你了😜

那类型不同为什么,也用常引用呢?

 

怎样使用

我们了解了引用的使用规范,接下来,我们看看,在哪些场景下,可以使用这个引用。

1.引用作函数参数

以前,我们在用C语言写swap交换函数时,需要用到指针来接受传过来的实参,通过地址,达到形参改变实参的目的。现在C++有了引用,我们就可以将它作为函数的参数,也就是,实参的别名,这样也就达到了形参改变实参的目的。

例:

 有了引用,我们可以直接将参数传递进去,不需要再想着传递变量的地址了。

2.引用作函数返回值

引用也可以作为函数的返回值,但是注意:

注意变量的作用域

例:

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值