在线用户    站点地图 技术论坛 文档中心 站点导航 资源下载 语言参考 教程专题 站点统计 业务项目 使用帮助
您的位置
MSDN参考新加了CSS2参考,全中文,制作精良。245k下载。           新加了sxf_sxf推荐的"动态网页专家指导" 下载!          新加了lsg2002lsg推荐的"ASP.NET高级编程(PDF)" 下载!          新加了DHTML代码预览!!,功能强大哦!欢迎试用          新加了网友lincong为大家提供的SQL Server 2000 程序员指南,有点大,但同时也就说明内容全咯!           新加了网友ibra为大家提供的北大的JAVA课件,很适合初学者入门           新加了一个java的连接缓冲池代码示例           新加了人月神话电子版下载!软件工程巨著哦~~           更新了评分标准,引入了“专家分”概念,相信可以更好的激励大家的学习!详情请看“使用帮助”           新加了由网友GGG提供的“IIS超级管理手册”,值得一看哦!(虽然我没看过 :P )           新加了“英雄榜”,欢迎测试!           “无组件上传·从原理剖析到实践”已经全部完成,源码全部开放,有兴趣的朋友请到文档中心一探究竟。  您的位置  首页>技术论坛>ASP.net>F0144025 在同一窗口中打开页面中的链接 在新窗口中打开页面中的链接 将ASPCHINA设为首页 将ASPCHINA加入书签    
 LOGIN HERE
用户:
密码: 忘记密码
记住密码 用户注册 游客进入

论坛首页
|--web开发
   |--ASP
   |--JSP
   |--ASP.net
   |--DHTML
   |--RUBY
|--软件开发
   |--C++
      |--Code here
   |--JAVA
   |--VB
   |--Delphi
   |--XML
|--.net技术
   |--C#
   |--VB.net
|--Yup开发组
|--站务&投诉
   |--站长专区
|--硬件&网络
|--休息室
|--数据库技术
 进入精华区 我要发言



 咨询关于类与结构、堆栈、内存分配三者的相关知识back to ASP.net forum  
作者:芳菲四月,6级分数:20
日期:2011/4/27 11:07:00类别:ASP.net, 技术问题
回复:1次浏览:1899次
状态:尚未结贴

各位仁兄:
    最近看到一个问题:c#中类与结构的区别?
    答案:类是引用类型:在堆上分配地址。结构是值类型,在栈上分配地址。

    我知道堆栈是两种数据结构。记得上大学的时候,还学过一本《数据结构》的书,记得书中讲过堆、栈这两种数据结构。依稀记得老师还说过,数据结构非常重要,搞计算机的应该掌握数据结构的知识。当时学习这本书的时候还不明白“数据结构”是个啥东西,懵懵懂懂啥也没学会。

    堆栈的知识早就还给老师了,现在只好百度了。在百度中搜索堆栈的相关知识:
    堆:顺序随意。由new分配的内存。例如:类
    栈:后进先出。由系统自动分配。例如:结构

    我能够理解“堆:顺序随意”、“栈:后进先出”的意思,也能够联想到现实生活中的例子(所有的数据结构都抽象自现实生活)。可是,我不明白它们和“类、结构”联系到一块是怎么回事,我的脑海中想象不出类和结构在内存中的“生存状态”。所以无法更深层次的体会“类与结构”在内存领域的区别。

    我想我可能欠缺计算机内存方面的知识。
  哪位仁兄能够根据自己的理解,为我深入浅出的讲解一下“类与结构”“堆栈”“内存”这三者是如何在程序设计中实现的。

    我以前只写程序的逻辑和功能实现,从来不考虑内存方面的事情。所以设计到内存分配的知识总是很难理解




reply[F0144025]
 



 
 re [1] 咨询关于类与结构、堆栈、内存分配三者的相关知识ASP.net forum  
- miles11-05-24 20:39  

堆(heap),可以理解为一大块内存区域,适用于那些内存需求不定的场合。比如一个类,里面有字符串,长度又不确定,很难确定在内存中的实际大小。这样就适合用堆。他通过内存指针,串联起所有数据。

栈(stack),类似一个五斗橱,主要是通过一个指针来检索数据。如果数据长度在编译期间都是确定的,那么用栈会效率更高,因为不需要频繁的计算各个数据长度、位置。

所以,如果要用栈,一定是定长的数据类型,也就是所谓的基本类型。string这样的对象是没法用的,因为编译期没法固定分配内存。但如果用堆,就可以自由缩放。

reply[F0144039]
 



您的位置
  (c)2000-2021 Yup Studio, all rights reserved.  
41.01563