黑马程序员——引用

本文探讨了C++中的引用概念,它类似于指针常量,提供了一种安全地改变函数参数值的方式。引用必须在声明时初始化,并且一旦绑定不能改变。引用简化了指针的使用,避免了值传递和地址传递的复杂性。在函数调用中,引用传递允许直接修改实参。此外,常量引用用于保护参数不被修改。文中通过示例展示了引用在交换函数中的应用,并提到了默认参数、占位参数和函数重载等后续学习主题。
摘要由CSDN通过智能技术生成

就像上一节最后说的,引用就像指针常量,不可以改变指针指向,可以改变参数值,这就是唯一的重点。
引用的提出,就是定义了一个变量,存入数据,能否给这个变量起一个小名,都是这个房子,但是有一个大名,有一个小名,于是有了:

	int a = 10;
	int& b = a;	//int const* b = &a;

我们可以通过b对该数据进行任何操作,赋值、运算、取地址等等,都一样,因为这就是一个房子的不同名字而已。所以,这就带来,定义引用的条件:第一,必须有右值(没房子还起什么小名);第二,一旦初始化,就不能更改(你把这个名字给了这个房子,就不能用这个名字给其他房子起名字)有点像指针常量了吧,不可以更改指向了。
引用的用处:这个时候温习一下参数传递——值传递(不改变实参)、地址传递(改变实参)、那引用传递呢?
既然引用传递是从指针常量的角度出发的,那他一定可以改变实参!!!

void myswap1(int a, int b) {//值传递
	int temp = a;
	a = b;
	b = temp;
	cout << a << endl;
	cout << b << endl;
}
void myswap2(int* a, int* b) {//地址传递
	int temp = *a;
	*a = *b;
	*b = temp;
	cout << *a << endl;
	cout << *b << endl;
}
void myswap3(int& a, int& b) {//引用传递  起了个别名,修改别名就是修改原来的值,比指针简单,简化指针

	int temp = a;
	a = b;
	b = temp;
	cout << a << endl;
	cout << b << endl;
}

观察就能知道,引用传递不用那么多******,指针其实虽然我能懂,但是太难看了,用int&,一步到位,使用函数的时候,也是直接传入变量名,不用地址,很爽!有木有!!!再也不怕忘记✳了
而且,还可以在主函数里,给自己定义的函数左赋值,这点太强了。
常量引用,const int & ret 就像既修饰指针又修饰常量,数值不可以改,指针不可以改。主要用途,比如打印数据,不允许修改主函数的实参值等。
今天就到这吧,明天学习默认参数、占位参数、函数重载

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值