c++ 学习之路 第四天 引用

在网上看到看到下面引用的解释,觉得挺好的就复制粘贴了下来。我写博客是为了自己理解清楚的知识体系,让知识不要混乱,更好的记住。

在 c/c++ 中,访问一个变量只能通过两种方式被访问,传递,或者查询。这两种方式是:

  1. 通过值 访问 / 传递变量

  2. 通过地址 访问 / 传递变量 – 这种方法就是指针

    除此之外没有第三种访问和传递变量值的方法。引用变量也就是个指针变量,它也拥有内存空间。最关键的是引用是一种会被编译器自动解引用的指针, c++ 中根本就没有什么叫做别名的东东,但我还是觉得起这样的名字是便于理解

#include<iostream>
using namespace std;


int main()
{
    int a =10;
    int b =20;
    int *p =&a;
    p =&b;
    *p = 200;
    cout<<a<<endl;

    //c++的引用是变量的别名
    //其在定义的时候必须用变量初始化
    int & ra = a;
    ra = b;     //a = b;
    ra = 500;
//  *(int*)&a =500;

    cout<<"ra="<<ra<<endl;
    cout<<"a="<<a<<endl;


    int m[10];//={1,2,3,4,5};
//err:  int & rm = m;   //m是数组名,本质是一个地址常数,不是变量,因为不可以给引用变量初始化;
//err:  int  & rn;
//  cout<<rm<<endl;

    const int & rc = 10;
    //const int _tmp =10;
    //const int & rc = _tmp;

    int & rma = m[0];
    int * pma = &m[0];
    int * & rpma = pma;
//err:  &m[0] = 0xfff000;
    int * & rpmb = NULL;
    //define NULL (void*)0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值