首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于结构和类的存储方式有关问题!

2011-12-18 
关于结构和类的存储方式问题!!!关于结构和类在内存的存储方式不同上,在网上看到了一个如下的说法:Class a

关于结构和类的存储方式问题!!!
关于结构和类在内存的存储方式不同上,在网上看到了一个如下的说法:


Class a // 声明对象引用,分配栈内地址
  = new Class(); // 声明对象实体,分配堆内地址
Struct b // 声明对象,分配栈内地址
  = new Struct(); // 调用构造函数



突然有点迷惑了!
上面的说法,对于 Class a = new Class(); 这一语句岂不既存到了栈上,也丰到了堆上???
问问大家,上面的注解,是否正确无误?!

[解决办法]
Class a = new Class(); 
只分配堆内地址
[解决办法]
引用(一个32位的数)本身要放到栈上,
引用指向的数据结构在堆上。

struct实例则直接分配在栈上。
[解决办法]
建议LZ看看引用类型和值类型的资料
一个引用类型:
栈里面保存该实例的地址(和其它一些信息)
堆里面保存该实例的内容

Class a = new Class();就包含了上面两部分
[解决办法]
struct是值类型 直接放在栈上

热点排行