通过查看内存学习引用
来源:互联网 发布:虚拟机和系统网络连接 编辑:程序博客网 时间:2024/05/02 02:00
本来学习引用的时候,只知道可以通过函数达到修改实参的目的,但是倘若不用引用的话,则达不到,于是有一个查看内存的想法,这样或许可以对引用理解的更透彻。
首先引用一个小例子:
#include <iostream>using namespace std;void swap(int x,int y){int temp;temp=x;x=y;y=temp;}void main(){int a=3,b=4;cout<<"a="<<a<<",b="<<b<<endl;swap(a,b);cout<<"a="<<a<<",b="<<b<<endl;}
这是一个简单的小例子,首先我们看一下如果不是使用引用的话,实参和形参的地址。
下面是实参a、b的地址:
下面是形参x、y的起始地址:
下面是x、y交换后的地址
通过上面的对比,我们可以看到,形参x、y经过交换之后,的确相互交换了自己的值,但是,实参和形参占有了不一样的内存空间,所以说,即使我们对传递过来的形参x、y进行交换成功之后,我们的实参还是原来的样子,还是a=3,b=4;
与之相对于,倘若我们使用应用的话,结果是什么样的呢?
首先修该函数的实现代码如下:
void swap(int &x,int &y){ int temp; temp=x; x=y; y=temp;}
然后进行调试,我们下面是刚进入函数式x、y的初始地址
我们发现,现在的形参x、y的地址和实参a、b地址一样,这就解释了为什么说使用引用的时候,声明定义的引用变量都是原来变量的一个别名。
函数运行结束的时候,x、y的地址如下:
所以,我们的a、b经过函数转换之后,值也发生了交换,达到了我们的目的。
- 通过查看内存学习引用
- 通过LeakDiag查看内存泄漏
- 通过LeakDiag查看内存泄漏
- 通过LeakDiag查看内存泄漏
- AndroidStudio查看对象引用,是否内存泄露
- android如何通过工具查看内存泄漏
- GDB查看内存指令引用操作的示例
- 【Android】通过软引用实现图片缓存,防止内存溢出
- 通过软引用实现图片缓存,防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出
- Android 通过软引用实现图片缓存,防止内存溢出
- Android通过软引用实现图片缓存,防止内存溢出
- 通过反射查看类信息 学习笔记
- SQL第四章的导图总结
- typedef 理解
- 室内定位技术(一)——引言
- 举例说明如何在android中利用Service来实现后台发送邮件功能
- bitset应用——用string数组对bitset数组赋值
- 通过查看内存学习引用
- 集合类 day10
- alsa声卡
- 室内定位技术(二)——竞争对手分析
- 又开了一个新的个人网站 www.mccdir.com
- Maven权威指南_笔记(1)
- android系统信息(内存、cpu、sd卡、电量、版本)获取
- int型和char型数据 以及int 与string的相互转换
- “记住密码“功能的正确设计