首先了解内存,内存就是一排房间,编号从0开始,0,1,2,3,4,5......

房间里面一定要住人,新人住进去了,原来的人就走了;不管你住不住,里面都有人、

编号就是地址、里面的人就是内容,为了我们(人)记着方便,我们给他们起些名字,如张三、李四、于是,

变量,就是一个房间,它有编号(地址),他有名字(变量名),他有内容(里面的人)、

int a = 3;   // a 是名字,3 是内容,地址可以假设是0x 12345678 (通常就是32位地址)、

// 0x12345678 这个房间里面住的是一个int,

所谓指针变量,就是一个房间,他里面的内容,可以放个地址;如

int *pi = &a;   // pi 是名字,内容就是a的地址,0x12345678; 所以,你懂的,

// 我们知道你家地址,你说,我能找到你吗??于是

*pi = 4;          // 就是通过pi,也就是a 的地址,把a的内容改成4了、

pi 的类型int*, pi就是个指针(变量)、

好吧,变量的别名,就相当于外号,

int & b = a;    // 同样的0x12345678 这个房间,刚才他有个名字a,现在又有个名字b了、

b = 10;          // 也就是 a = 10;

a = 100;        // 也就是 b = 100;

int& 就是引用类型,int&  b = a;

意思,就是b是对a 引用,也就是b 是a 的别名、a就是b,b就是a 其实,变量名字神马的都是浮云。 假设有一个整型变量(也就是int型),它放在内存0x0023F920中(其实是从0x0023F920~0x0023F923四个字节), 这个变量我声明的时候是这样的:int a=3;  那么我们可以知道:这个整型变量的地址是:0x0023F920,它的名字是a, 它的值是3,‘a’就是一个代号,一个名字,方便程序员书写程序,当编译器看到a时,看到a=10时,编译器就会把0x0023F920开始 的四个内存单元中的值改为10,仅此而已。所以无论是整型变量也好,指针变量也好,我们要把“变量名”和“变量”这两个概念区分开, 就像把“人的姓名”和“人本身”区分开一样。 此外,关于指针的类型,我们知道有int *,char *,double *等等。如果对一个int * 型的指针解引用,那么会连续读四个字节,如果 对一个char *型的指针解引用,则只会读一个字节,同样道理,double * 读八个字节,这是怎么实现的呢?其实反映在汇编代码上很简单。 比如有 int * a;b=*a;  对应汇编代码:  move acx, dword ptr [a]       move dword ptr[b],acx

最新文章

  1. GJM : Unity3D HIAR -【 快速入门 】 一、简介
  2. 【jq】c#零基础学习之路(5)自己编写简单的Mylist<T>
  3. windows7下启动mysql服务出现服务名无效
  4. SQL Server数据库层面自定义数据同步性能测试
  5. Java学习-010-创建文件夹源代码
  6. NSSet类型 以及与NSArray区别
  7. 如何配置svn服务器
  8. android logcat里面AndroidRuntime FATAL EXCEPTION: main这个是什么问题啊。
  9. HTTP/2 常见问题回答
  10. .NET注册页面代码
  11. 40 个超棒的免费 Bootstrap HTML5 网站模板
  12. 使用XE5-PACTH破解Delphi-XE5时,出现检查文件大小失败的解决方法
  13. C#类详解
  14. Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构
  15. C语言之linux内核--BCD码转二进制与二进制转BCD码(笔试经典)
  16. Mysql 模糊匹配(字符串str中是否包含子字符串substr)
  17. webpack笔记一
  18. 面试题20:搜索二叉树可能有两个元素发生了交换,如何恢复BST?
  19. app流畅度测试--使用FPS Meter
  20. java 面试题总结(一)

热门文章

  1. mysql 查询正在执行的sql
  2. tomcat 启用https协议
  3. C:\Windows\System32\drivers\etc中的hosts文件
  4. [翻译]windows下 连接到 bitnami的phpmyadmin
  5. 暴力三维树状数组求曼哈顿距离求最值——牛客多校第八场D
  6. 1 visual studio code 配置C++开发环境 (windows 开发环境)
  7. Python对象继承set类型
  8. 微信-小程序-开发文档-服务端-模板消息:templateMessage.getTemplateLibraryList
  9. 尾插法-实现链表反转(有点bug,以后再来研究下)
  10. C++之程序流程_选择结构