指针(1)引用篇

2 篇文章 0 订阅
2 篇文章 0 订阅

        接上篇(指针(1)变量篇-CSDN博客),我们这一期来讲一讲引用。

简介

        引用是一种很容易和指针搞混的数据类型。他和指针很相似但不相同。引用标识符是“&”。且听下文分解。

初始化

        引用必须在初始化的时候就要告诉编译器它要初始化为谁的引用,不然就会编译错误。引用的赋值很简单。只要直接写上变量名就行。下面的b就是一个初始化为a的整型引用。

int a=1;
int &b=a;

操作

        先强调一下,引用变量一经初始化就不能再改变它引用的对象,且它的所有信息都与原变量保持一致。后面只要其中一个进行了操作就会影响两个的数值。你们可以把引用变量当作原变量的另一个名字。

        你们可以好好分析一下下面程序的输出。

#include <iostream>
using namespace std;
int main(){
	int a=1;
	int &b=a;
	cout<<&a<<' '<<&b<<'\n';
	cout<<a<<' '<<b<<'\n';
	a+=10;
	cout<<a<<' '<<b<<'\n';
	a-=b/2+1;
	int temp=a;
	for(int i=1;i<temp;i++){
		b*=i;
	}
	cout<<a<<' '<<b<<'\n';
	return 0;
}

输出:

函数和引用

        众所周知,在函数中的参数是形参,是在函数中临时定义的。它的值等于函数调用时传入的参数——实参,但它并不能对实参进行改变。

        那我们怎么才能在函数中操作实参呢?嘿嘿,这时候引用就出来了。如果将形参初始化为实参的引用,那么形参的操作就能影响实参了。同时,引用也可以作为返回值。

试一试

1.编写一个整型的swap函数。

2.编写一个能让a和b都等于a+b的函数。

1.答案

void swap(int &a,int &b){
	int temp=a;
	a=b;
	b=temp;
}

(为了避免重复,请不要在前面写上using namespace std;)

错误示范:

void swap(int a,int b){
	int temp=a;
	a=b;
	b=temp;
}

这样操作的是形参,和实参没关系。

2.答案

void add(int &a,int &b){
	a=b=a+b;
}

小结

        本期我们讲解了引用。下一篇是数组。感谢大家的支持,欢迎在评论区反馈问题!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值