c++ 引用和指针的区别
2015-11-12 22:19
288 查看
之前看到引用和指针的区别,记了笔记,今天就记录下来。
1.引用不可以为空,但是指针可以。
2.对引用的操作直接到引用指向的变量操作,指针则不是。
3.引用的大小是所指变量的大小。
指针的大小是指针本身的4个字节的大小。
4.无论何时,引用不改变指向,但是指针改变。
5.可以有多级指针,但是不能有多级引用。
6.指针和引用传参的时候,指针传的是 指向对象的地址,应用传的是实参本身。
另外,引用是占用内存的,如果单单理解成变量的别名,而取地址的时候和变量的地址是一样的,容易理解成引用是不含内存的。
但是引用的底层实现是指针实现的,取地址一样是因为在这个过程中解引用了。
这位做了很详细的引用底层实现的解释:
/article/4890712.html
int &j=i;
编译器解释为
int* const j=&i;
而这位分析了引用是常量指针的应用:
/article/8851771.html
1.引用不可以为空,但是指针可以。
2.对引用的操作直接到引用指向的变量操作,指针则不是。
3.引用的大小是所指变量的大小。
指针的大小是指针本身的4个字节的大小。
4.无论何时,引用不改变指向,但是指针改变。
5.可以有多级指针,但是不能有多级引用。
6.指针和引用传参的时候,指针传的是 指向对象的地址,应用传的是实参本身。
另外,引用是占用内存的,如果单单理解成变量的别名,而取地址的时候和变量的地址是一样的,容易理解成引用是不含内存的。
但是引用的底层实现是指针实现的,取地址一样是因为在这个过程中解引用了。
这位做了很详细的引用底层实现的解释:
/article/4890712.html
int &j=i;
编译器解释为
int* const j=&i;
而这位分析了引用是常量指针的应用:
/article/8851771.html
相关文章推荐
- C/C++学习流程
- 【黑马程序员】C语言学习笔记(3)-预处理指令
- C++ STL@ list 应用 (leetcode: Rotate Array)
- c语言模拟实现oc引用计数
- Prime C++ copy 构造函数
- 拇指接龙游戏升级记录03(升级MainScene.cpp)
- 拇指接龙游戏升级记录03(升级MainScene.cpp)
- Cpp--const限定符
- 在Ubuntu上使用eclipse开发C++[持续更新...]
- C/C++ debug(一)
- __stdcall,__cdcel,extern c 和导出函数名
- 结合C++和GDAL实现shapefile(shp)文件的创建和写入
- C++中的delete和delete[]区别
- 网易MOOC教育之软件工程(C编码实践篇)学习总结
- leetcode笔记:Best Time to Buy and Sell Stock IV
- c++学习第一课
- 最大公共子串(C语言实现)
- C++中的vector< vector<int> > v(m, vector<int>(n) );是什么意思
- C语言格式化输入输出
- 关于C++中using namespace std