C++中引用

引用:

本质是指针常量  int&p == int *const p

知识点一【引用的用法】

变量名实际上一段连续内存空间的别名,程序可以通过变量可以申请内存地址。c++增加了另一种给函数传递地址的方式,就是传引用,引用可以给另一个变量起别名。

int num =10;
int &a =num; // 引用必须初始化 此时a就是num的别名
int main()
{
    int a =10;
    int &num = a;
     cout<<a<<" "<<num<<endl;  //10 10
    num =200;
    cout<<a<<" "<<num<<endl;// 200 200
}

知识点二【引用在数组中的使用】

1)给数组取个别名:

int main(int argc,char*argv[])
{
    int arr[5]={10,20,30,40,50};
    int (&xxx)[5]=arr; //给arr取别名为xxx
    for(int i=0;i<5;i++)
    {
        cout<<xxx[i]<<endl;
    }
}

2)结合tpyedef

int main(int argc,char*argv[])
{
   typedef int xxx[5]; //xxx是一个拥有5个int类型的数组
   xxx arr ={10,20,30,40,50}; //我自己方便记忆就是“封装”了一个拥有五个int类型的数组
   xxx &yyy =arr;
    for (int i =0;i<5;i++)
    {
        cout<<yyy[i]<<endl;
    }
}

知识点三【函数返回值作为引用】

int &fun(void); //声明
int main(int argc,char*argv[])
{
    int &res = fun(); //res 是num的别名
    cout<<res<<endl;
}
int &fun(void)
{
    static int num=10;
    return num;//不要返回局部变量,函数结束时会释放,除非用static修饰。
}

知识点四【指针的引用】

#include <iostream>
#include<cstring>>
using namespace std;
void my_str(char*&my_str);
int main()
{
    char *str  = NULL;
    my_str(str);
    cout<<"str="<<str<<endl;
    free(str);//释放
}
void my_str(char*&my_str) // my_str == str   
{
    my_str = (char*)calloc(1,32);//申请空间
    strcpy(my_str,"Hello");
}

知识点五【常量的引用】

int main()
{
   const int &num =10; //在这里面10是const int 类型。
   num =20;//err
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值