c++之“引用”专题

文章介绍了C++中的引用概念,作为变量的别名,它在函数参数传递和内存操作中提供了一种更安全、更易读的方式。引用必须在定义时初始化,且一旦绑定不能改变。对比了使用引用和指针进行交换函数的效果,并展示了指针的引用以及二级指针引用的示例。
摘要由CSDN通过智能技术生成

变量名的回顾

        变量名实质是一段连续存储空间的别名,是一个标号

        程序中通过变量来申请并命名内存空间

        通过变量的名字可以使用储存空间

问题1:对一段连续的内存空间只能取一个别名吗?

              是可以的

1.引用的概念

a) 在C++中新增加了一个引用的概念

b) 引用可以看作一个已定义变量的别名

c) 引用的语法:Type&name=var;

d)引用做函数参数?(引用做函数参数声明时不进行初始化)

e)引用做变量是需要初始化,引用做函数参数时不需要初始化

2.引用做函数参数

//方法一:使用指针
void swap1(int* a, int* b)
{
	int tmp = *a;
	*a = *b;
	*b = tmp;
}
int main(void)
{
	int x = 10, y = 100;
	swap1(&x, &y);
	/*swap2(x, y);*/
	printf("%d\n%d\n", x, y);
    return 0;
}
//方法二:使用引用
void swap2(int& a, int&b)
{
	int tmp = a;
	a = b;
	b = tmp;
}
int main(void)
{
	int x = 10, y = 100;
	/*swap1(&x, &y);*/
	swap2(x, y);
	printf("%d\n%d\n", x, y);
     return 0;
}

输出结果

3,引用的意义

a)引用作为其变量的别名存在,在一些场合可以代替指针

b)引用相对于指针来说具有更好的可读性和实用性

4.指针的引用

int main(void)
{
	int x = 666;
	int* p = &x;
	int*& q = p;//q就是对指针p的引用
	printf("*p:%d\n *q:%d\n", *p, *q);
    return 0;
}

结果

 5.二级指针的引用

//二级指针
void boy_home(int**meipo)
{
	static int boy = 23;
	*meipo = &boy;
}
//二级指针的引用
void boy_home2(int*&meipo)
{
	static int boy = 23;
	meipo = &boy;
}
int main(void)
{
	int* meipo = NULL;
	boy_home(&meipo);//方法一
    boy_home(meipo);//方法二
	printf("boy:%d\n", *meipo);
}
//结果 23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值