指针和引用的区别
2016-06-02 14:20
309 查看
(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。
(2)可以有const指针,但是没有const引用;
(3)指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的)
(4)指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;
(5)指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了。
(6)”sizeof引用”得到的是所指向的变量(对象)的大小,而”sizeof指针”得到的是指针本身的大小;
(7)指针和引用的自增(++)运算意义不一样;
分享一段代码
#include<iostream> using namespace std; int main () { //以下三行代码 b是a 的引用。 int a = 1; int &b = a; cout<<b<<endl; //指针 int c = 3; int *p =&c; cout<<*p<<endl<<p<<endl; }
(2)可以有const指针,但是没有const引用;
(3)指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的)
(4)指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;
(5)指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了。
(6)”sizeof引用”得到的是所指向的变量(对象)的大小,而”sizeof指针”得到的是指针本身的大小;
(7)指针和引用的自增(++)运算意义不一样;
分享一段代码
#include<iostream> using namespace std; void swap(int *a, int * b); void swap2(int ,int); int main() { int a = 6; int b = 8; swap(&a,&b); cout<<a<<endl; cout<<b<<endl; int c = 4; int d = 5; swap2(c, d); cout<<c<<endl; cout<<d<<endl; } void swap(int * a, int * b) { int temp = *a; *a = *b; *b = temp; } void swap2(int a ,int b) { int temp = a; a = b; b = temp; }
相关文章推荐
- NuGet安装和使用
- 【linux】压缩和解压缩
- jquery获取和设置值
- C/C++程序员必须熟练应用的开源项目
- 参数嗅探(Parameter Sniffing)(1/2)
- iOS中旋转加载动画的实现
- CSS基础学习笔记
- 计算机网络分类
- ubuntu使用meld/beyond compare 做git的diff工具
- 生产者消费者模式
- Dashgo D1使用注意说明
- Qt5 窗口关闭信号的响应~
- mipmap 目录和drawable 目录有什么区别
- JAVA程序员一定知道的优秀第三方库(2016版)
- 字符编码笔记(本文系转载)
- 重新定位svn地址的方法(windows和linux),svn switch(sw)的帮助信息
- easyui
- android-PullRefreshLayout——Android下拉刷新布局组件
- android Debug模式如何签名
- Java Mvn 添加依赖的jar包