引用和指针的区别
来源:互联网 发布:moment.js vue 编辑:程序博客网 时间:2024/06/03 23:58
1.
指针是一个变量,一个实体,开辟空间,存放指向空间的地址。
引用是一个别名,不开辟空间。
int a=10;int *p=&a;int &b=a;
2.
引用–没有空引用,必须初始化
指针–可以等于NULL
int *p=NULL;
3.
引用–不分等级,没有所谓的二级引用
指针–有二级,三级,等多级指针
int *p;
int * *p;
int * * *p
…
4 .
指针初始化后可以改变
引用初始化后不能改变
int a=10; int b=12; int *p=NULL; p=&a; p=&b; int &b=a;==>int *const b=&a;
5.
sizeof(引用)是被引用对象的大小;
Sizeof(指针)恒等于4
int a=10;
int *p=&a;
int &b=a;
sizeof(p)=4;
sizeof(b)==sizeof(a)=4
6.
指针作为函数形参时,传的是地址
引用作为函数形参时,传的是实参本身
void Swap1(int *a, int *b){ int tmp = *a; *a = *b; *b = tmp;}void Swap2(int &a, int &b){ int tmp = a; a = b; b = tmp;}void main(){ int a = 10; int b = 20; Swap1(&a, &b); Swap2(a, b);}
反汇编
汇编下,表达相同。
7.
有const 指针
没有const 引用
const int *p
int *const p
const int * const p
8.
指针++ 加到是所指向的对象的字节数
引用++含义不同
void main(){ int a=10; int &b=a; b++;//==a++,相当于a本身自加 int *p=&a; p++;//+(sizeof(*p))相当于+(sizeof(int))}
阅读全文
0 1
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 引用和指针的区别
- 引用和指针的区别
- 指针和引用的区别
- 指针和引用的区别
- 引用和指针的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 引用和指针的区别
- React Native 移动开发入门与实战
- Smarty中自定义函数与调用方法
- jvm主内存与工作内存
- 再谈Qt实现Rasdial拨号问题(说说项目中遇到的问题和解决方案)
- 用idea在Windows下构建spark2.2.0的环境
- 引用和指针的区别
- R语言:循环读取相似文件名的文件:
- Leetcode 102 & 106
- xshell更改终端目录颜色
- 【UE4 shader】溶解shader
- Windows2012中安装Nginx并创建为Windows服务
- RabbitMQ的Exchange 模式之Fanout(广播模式)
- linux进程通信1
- How Many Tables -- 并查集