C++引用总结

一.引用说明

  • 引用概念:
  1. 一个变量的一个别名,一个引用只属于一个变量。
  2. 引用与其代表的变量共享同一个存储单元,与变量有着相同的地址

 

  • 格式:

类型+&+引用名=变量名;

(&在此起标识作用,并不代表取地址符)

 

  • 注意事项:
  1. 引用必须初始化。
  2. 由于没有单独的存储空间,引用只有声明没有定义。
  3. &:当&前为类型名时,必为引用声明(int &b=a;),当&单独存在时(&p=a;),为取地址符。
  4. 不能对数组进行引用命名
char a[6]="hello";
char &b[6]=a;

代码中是错误的,因为数组名a只是代表数组首元素地址而并不是一个有存储空间的变量

    5. 若想使用引用,而且改变原值应该使用常引用

const+类型名+&+引用名=变量;

int a=1;
const int &b=a;

   6.引用多用于函数参数  

 

二.应用

  • 普通引用

  • void fun()
    {
        int x=3;
        int &y=x;
        cout<<x<<"    "<<y<<endl;
        y=5;
        cout<<x<<"    "<<y<<endl;
    }
    
    int main()
    {
          fun();
    }

 

 

  • 结构体引用
typedef struct
{
    int x=1;
    int y=2;
}mystruct;

int main()
{
    mystruct st1;
    mystruct &st2=st1;
    st2.x=3;
    st2.y=4;
    cout<<st1.x<<"   "<<st1.y<<endl;
}

 

  • 函数参数的引用
void fun3(int &a,int &b)
{
    int c=0;
    c=a;
    a=b;
    b=c;
}

int main()
{
    int x=20;
    int y=30;
    cout<<x<<"    "<<y<<endl;
    fun3(x,y);
    cout<<x<<"    "<<y<<endl;
}

 

  • 指针的引用
  • void fun4()
    {
        int a=3;
        int *p=&a;
        int *&q=p;
        *q=5;
        cout<<a<<endl;
    }
    
    int main()
    {
    
            fun4();
    
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值