引用和指针的区别
来源:互联网 发布:邢山虎 知乎 编辑:程序博客网 时间:2024/06/05 05:59
今天看书时无意中看到了一个 int &a;本来想简单的百度一下就以为可以解决问题了,但是后来又不止一次的遇到这个问题,自己脑海中还是没有对引用有清晰的理解,所以写个博文来简单总结一下。
1.指针可以在运行时改变所指向的值,但是引用一旦与某个对象绑定后就不可以改变了;
2.编译时,“符号表“记录的是变量名和变量地址,指针在符号表上记录的是指针变量的地址,而引用记录的是引用地址的地址值,而符号表在生成后就不会再改,所以指针可以改变指向的值,而引用就不可以再改变了;
3.指针在定义时会被分配内存空间,而引用不会被分配内存空间,是和引用对象共用一个内存空间,当然,引用可以改变那个内存空间的值;
所以,引用本质上是一个变量的别名。
例子:
int i;
int *a = &i;//这里a是一个指针,它指向变量i
int &b = i;//这里b是一个引用,它是变量i的引用,引用是什么?它的本质是什么?下面会具体讲述
int * &c = a;//这里c是一个引用,它是指针a的引用
int & *d;//这里d是一个指针,它指向引用,但引用不是实体,所以这是错误的
void function(int &a)
{
a = 100;
}
int main()
{
int x = 200;
function(x);
return(0);
}
0 0
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 引用和指针的区别
- 引用和指针的区别
- 指针和引用的区别
- 指针和引用的区别
- 引用和指针的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 指针和引用的区别
- 引用和指针的区别
- mac修改mysql密码
- FindBugs 插件使用
- ActiveMQ的启动和配置介绍
- 数据结构第四次作业(二叉树的基本操作实现)
- 树和二叉树
- 引用和指针的区别
- iOS视频播放的四种方案
- 智力游戏
- POJ 2437 贪心+priority_queue
- DOM对象与JQuery对象
- postgresql 中的外键
- JqueryUI-datepicker 时间段控制在30天
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- wget 连接下载超快