c++的引用

引用的概述:使用int& 给变量起别名
int a = 10//有一块4字节名称为a的内存空间存放10,通过对a赋值可以操控这块内存
int &b = a;  //给这块内存起别名b,通过对b赋值可以操控这块内存。&a和&b输出结果都是这块内存的地址
注意:
int a = 10int c = 20;
int &b;   //引用必须要初始化,非法
int &b1 = a;
b1 = c;   //赋值操作,而不是给c起别名
引用做函数的参数:
void fun(int &a)
{
   a = 10//main里面a的别名,操控同一块内存
}

void main()
{
    a = 0;
    fun(a);  //a的值会改变
}
引用做函数返回值:
int& fun() 
{ 
    static int a = 0; 
    return a;   //对于返回值的理解:可将fun()看成一个变量,类型为int&,即引用,fun()为a的引用
} 

void main() 
{ 
    int &g = fun();   //g为a的引用
    g = 10;    //修改a的引用的值,即修改a的值
    fun() = 100;   //返回为引用的函数可以当左值,修改a的引用的值,即修改a的值
    system("pause"); 
}
拓展:
int* fun2(int *a) 
{ 
	static int *aa = a; 
	*aa = 100; 
	return aa; 
} 
int main() 
{ 
	int a = 0; 
	fun2(&a); 
	cout << a << endl; 
	*fun2(&a) = 1; //返回为指针的函数也可以当左值
	cout << a << endl; 
	system("pause"); 
	return 0; 
}
引用的本质:指针常量
int a = 1int &b = a;  //编译器会转化为  int * const b = &a;
b = 10;   //编译器会转化为 *b = 10;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值