第10章 指针(二) 首地址----------指针

 

     声明:文中观点仅代表个人,其中文字、图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.com QQ:80368704
    本节,我们要进一步深入到内存中去,了解一下关于内存具体工作的过程。
   
    当我们的计算机启动后,对于我们普通的用户来说,首先在内存中必须有操作系统存在,比如我们的WINDOWS必须启动,即进入内存,相应的显示器上要处在WINDOWS的桌面状态。这个过程通常不需要我们干预就完成了,最多需要你输入个windows登录密码,而已.
   
    其后,我们要编写程序,编译器(比如TC2或VC6)要被启动,即
进入内存中,相应的显示器上要出现编译器的界面。完成编译器的启动很简单,要做的就是单击或双击TC2或VC6的图标,他们就进入内存了,哈!

    而后,我们在编译器中编写程序A,将A编译、链接成功。之后我们运行A。和WINDOWS与编译器相同,A必须首先要进入内存,才能被运行。比如在TC2中,我们的运行A的操作就是CTRL+F9,A就进入内存,同时被运行了,这个过程对于我们普通用户是很简单的。

    那么,有了上面的概念,让我们进一步
深入内存中,看看会发现些什么?我们发现,windows是在内存开始的一段区域中,接着是编译器,编译器后是我们编写的程序代码,而后是我们程序中定义的那些变量。

    下面。我们举一个实例来说明内存中WINDOWS系统、编译器、程序及其变量的这种存放顺序。
为使描述简单,在下面的描述中,我将WINDOWS和编译器,简单的就说成WINDOWS了!!!
   
    在我们下面的一个简化的实例中,假设,我们的内存有6023个单元格。而在系统正常启动后,WINDOWS占用了0~4999的内存单元,我们自己编写的程序代码被运行时,被
5000~5999中,而程序中的变量 i ,一维数组 a ,和2维数组b ,安排在代码之后,分别在6000~6001,6002~6007和6008~6019中,具体程序代码以及内存的整体示意,如下所示:

posted @ 2009-03-26 13:05  .NET快速开发框架  阅读(199)  评论(0编辑  收藏  举报