c#中一个int类型变量的值存放在哪里?

比如 int a=3;
那么这个3存放在System.Int32结构的什么地方呢?
更明确地说,根据msdn的说明,System.Int32的内容是17个方法,两个字段(publicconstint MaxValue 和publicconstint MinValue),以及对一些接口的实现。没有一个字段是储存数值的。那么我的问题就是这个int a=3中的3存放在哪里?

附msdn:http://msdn.microsoft.com/zh-CN/library/system.int32.aspx

c#存值是将值存在内存里,分堆栈。值类型粗在栈里,引用类型存在堆里在栈中记录引用。int是值类型,值直接存在栈里。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-09
int是基础类型,直接存储在栈上,它里面是不会有什么字段或者属性来存储数值的追问

但是Int32是一个struct呀,他跟其他的struct的运行原理难道不是一样的么?

第2个回答  2012-12-09
你通过变量名访问一个值的时候实际上是访问的一块内存地址。对于像int这种标量数据存放的位置会根据他出现的地方而定。比如作为一个局部变量或者是函数参数,他会被存放在函数的栈上面。而作为全局变量他就简单的对应一块内存地址。追问

奥,请问从哪里可以看到它的源码呢?

追答

你可以在调试的时候看反汇编代码。

本回答被网友采纳
第3个回答  2012-12-11
如果是静态变更会在堆里,如果是局部变更在栈里
相似回答