指针与引用的区别
来源:互联网 发布:网络发帖犯法吗 编辑:程序博客网 时间:2024/05/29 10:35
指针和引用在c++中都是复合类型(compound type),即基于其他类型定义的类型。
指针本身就是一个对象
,允许对指针进行赋值和拷贝,在指针的生命周期内它可以先后指向几个不同的对象。
引用并非对象,相反它只是为一个已经存在的对象所起的另外一个名字,“引用即别名”。
因为引用不是对象,所以:
不能定义引用 的引用;
没有实际地址,不能定义指向引用的指针。
区别:
指针是一个对象,而引用仅是个别名;
指针可以有多级(int **p;),引用只能是一级(int &a=b;);
“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
指针访问对象需要解引用(*),引用不需要;
指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;
指针和引用的自增(++)运算意义不一样.
指针自增是对象的地址加1,int *p;p++;
表示指针向后移动4个字节;
引用的自增运算时对象本身加1,int b=1;int &a=b; a++;
a是b的别名,a与b都是2。
0 0
- 指针与引用的区别
- 指针与引用的区别
- 引用与指针的区别
- 指针与引用的区别
- 指针与引用的区别
- 指针与引用的区别
- 指针与引用的区别
- 指针与引用的区别
- 指针与引用的区别
- 引用与指针的区别
- 指针与引用的区别
- 指针与引用的区别
- 引用与指针的区别
- 指针与引用的区别
- 指针与引用的区别
- 引用与指针的区别
- 指针与引用的区别
- 指针与引用的区别
- OpenStack云平台的网络模式及其工作机制
- Python学习笔记(八)
- 【学习OpenCV】—— 深入了解 cv::Mat
- 单例模式
- Eclipse_Android问题锦集
- 指针与引用的区别
- 排序算法---2
- dfs
- 编译qt-mobility 1.2.0
- Hibernate 3.2 必需包
- Android Studio 项目中,哪些文件应该忽略而不提交到svn的服务器中?
- Activiti 实战篇 小试牛刀
- poj 2481 Cows 树状数组or线段树
- Android 安装时提示 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED