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

来源:互联网 发布:woc什么意思网络用语 编辑:程序博客网 时间:2024/05/01 09:31

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

在 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
原创粉丝点击