我的C++学习之路--04.C++的“引用”

来源:互联网 发布:cntv直播软件 编辑:程序博客网 时间:2024/05/24 04:20

引用

引用是C++中一个特别重要的概念。但是说白了,它就是一个变量的别名,当需要用另一个变量或是对象来初始化自身的时候,这玩意儿就派上用场啦。而这时,变量的引用和变量名本身都指向内存中的同一片区域。就跟不管别人叫我们自己的英文名 ,还是中文名,我们都会应答一样,这时如果将我们自身当作一个变量,并且将爹妈给我们取的中文名当成我们自己原本的变量名,那么那个后期因为扯淡的国际趋势而取的英文名字就相当于一个引用。(当然这个比喻貌似有点不恰当)来看看例子吧:

int a=1;

int &b = a;   这儿就是引用。引用必须在申明的时候就行初始化

--  -- - - -  - - - - - 

int c=2;

int b =c;这儿不是引用,只是简单的赋值操作,操作完成后,b和a 的值都是2  


引用和用来初始化的变量指向的是同一片内存,因此不管是通过引用还是变量都可以改变同一块内存中的内容。此外需要注意,引用一旦初始化,它就代表了一块特定的区域,因此不能够再代表其他的内存。


说到这儿,无限膨胀的好奇心和想象力可能驱使我们又想到了一个事物---指针。。

那么,指针和引用有什么区别呢????

首先,引用只是一个变量的别名,是一个变量或对象的替换名称。引用的地址没有任何意义,引用的地址就是它所引用的变量或是对象的地址, 对引用地址的操作就是对被引用的变量或对象的地址所做的操作。【百度百科里边说引用不占用内存,但是我看有的博客中也写到是需要占内存的,所以暂时相信百度,认为引用是不占用内存的】

其次,指针代表的是一个地址,指针变量存储的是一个地址值,因此要占用存储空间,我们可以随时修改指针变量所保存的地址值,从而可以使它重新指向其他的内存。