c++ 引用和指针的区别

来源:互联网 发布:保险论坛软件 编辑:程序博客网 时间:2024/05/12 08:41

之前看到引用和指针的区别,记了笔记,今天就记录下来。
1.引用不可以为空,但是指针可以。
这里写图片描述
2.对引用的操作直接到引用指向的变量操作,指针则不是。
这里写图片描述
3.引用的大小是所指变量的大小。
指针的大小是指针本身的4个字节的大小。
这里写图片描述
4.无论何时,引用不改变指向,但是指针改变。
5.可以有多级指针,但是不能有多级引用。
这里写图片描述
6.指针和引用传参的时候,指针传的是 指向对象的地址,应用传的是实参本身。
另外,引用是占用内存的,如果单单理解成变量的别名,而取地址的时候和变量的地址是一样的,容易理解成引用是不含内存的。
但是引用的底层实现是指针实现的,取地址一样是因为在这个过程中解引用了。
这位做了很详细的引用底层实现的解释:
http://www.cnblogs.com/hoodlum1980/archive/2012/06/19/2554270.html
int &j=i;
编译器解释为
int* const j=&i;
而这位分析了引用是常量指针的应用:
http://blog.csdn.net/webscaler/article/details/6577429

0 0