C/C++引用的用法

一.引用的基本用法
引用类型:其本质上是指针,在学习时可以和指针相对照。
指针类型:
int*
double*
Object*

引用类型
int&
double&
Object&

指针的使用:
int a = 123;
int* p = &a;
*p = 999;

引用的使用:
int a = 123;
int& r = a;
r = 999;//对r的操作就是对a的操作,引用可以看成目标对象的一个别名

int a = 123;
int& r = a;
r = 999;
printf("%p\n",&r);//打印地址

注意:
(1)引用在创建时必须初始化
(2) 引用在定义时就与目标绑定,无法解绑
例如:
int a = 123;
int b = 456;
int& r = a;
r = b;
结果是a=b=r456

二.引用的其他用法
(1)引用作为函数的参数
(2)引用作为函数的返回值

(1)

void test(int& a)
{
	a = 999;
}
int main()
{
	int num = 123;
	test(num);
	printf("%d\n",num); 
	return 0; 
}

(2)

int num = 1;
int& test()
{
    int&a = num;
    return a;
    //简写
	//return num; 
 } 
 
 int main()
 {
 	int& r = test();
 	r = 123;
 	
 	return 0;
 }

引用可以作为左值使用

 struct Object{
	int id;
	char name[16];
};
 
Object one;//全局变量 

Object& test()//返回全局变量的引用 
{
	return one;
}
 
 int main()
 {
 	test().id = 10;//函数的返回值是个引用,可以作为左值使用 
 	
 	return 0;
 }

要检查引用对象是否有效

 int& test()
 {
 	int target = 123;
 	return target;
  } 

引用的是一个局部变量,那么在函数退出后,目标对象失效,所以引用也就不能再用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值