C++引用

整数类型引用

int a=3;

int &b=a;//引用必须初始化


指针类型引用

int a=10;

int *p=&a;

int *&q=p;  


首先了解什么是引用,什么是指针

引用是为了避免用指针,并且需要传地址,而不是传值。


&符号就是取地址符号, 含义只这么一个; *符号就是创建一个指针, 或者做一次地址跳转;

int a = 10; // 给a分配一个内存逻辑地址0x100001, 这个地址存放了值10;
int *p = &a; //创建变量p, 给p分配地址0x100002, 这个地址存放的值是"0x100001"(a的逻辑地址值);
int *&q = p; //创建变量q, 给q分配地址也是0x100002, 因此这个地址存放的值还是a的逻辑地址值;

*q = 20; //访问存放在q变量地址下的值, 获得了a的地址值, 再访问一下a的地址值, 修改上面的内容为20;


//函数调用时候,给形参开辟内存空间,将实参值传递给形参,函数调用结束,销毁内存

例:

void fun(int *a,int *b)    

{

    int c=0;

    c=*a;

    *a=*b;

    *b=c;

}

int main()

{     

    int x=1,y=2;

    fun(&x,&y);

}

/* 这是一个典型的交换数值 

    a,b的地址的值互换

*/


//当使用引用,操作简单化

void fun(int &a,int &b)

{

    int c=0;

    c=a;

    a=b;

    b=c;

}

int main()

{

    int x=1,y=2;

    fun(x,y);

}

//实现原理:引用是地址传值,即a,b的地址值互换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值