相关疑难解决方法(0)

堆栈和堆的内容和位置是什么?

编程语言书籍解释了在堆栈上创建了值类型,并且在堆上创建了引用类型,而没有解释这两者是什么.我还没有看清楚这个问题.我理解堆栈是什么.但,

  • 它们在哪里和它们(物理上在真实计算机的记忆中)?
  • 它们在多大程度上受操作系统或语言运行时控制?
  • 它们的范围是什么?
  • 是什么决定了它们的大小?
  • 是什么让一个更快?

language-agnostic heap stack memory-management dynamic-memory-allocation

7847
推荐指数
27
解决办法
145万
查看次数

.NET中的所有内容都是对象吗?

请帮助我们解决"几乎"的争议一切都是一个对象(Stack Overflow问题的答案作为一个新手,在学习C#之前有什么我应该注意的吗?).我认为就是这种情况,因为Visual Studio中的所有内容至少都显示为结构体.请张贴参考文献,以免它变成"现代傻瓜"(This American Life).

请注意,这个问题涉及C#,不一定是.NET,以及它如何处理引擎盖下的数据(显然它都是1和0).

以下是"一切都是对象"的评论:

  • 呃,不,不是. - Binary Worrier
  • 我想要一个例子...... - scotty2012
  • 是不是从基类型Object派生的一切? - rizzle
  • 大多数东西都是物品... - Omar Kooheji
  • 值类型,整数,双精度,对象引用(不是它们自己的对象)等不是对象.它们可以"盒装"看起来像对象(egiToString())但实际上它们是原始类型.将条目更改为"NEVERLY everthing is a object",我将删除downvote - Binary Worrier
  • 我很欣赏澄清.我认为你可以在C#中与int进行交互的最低级别是一个结构,它不是一个对象?- http://msdn.microsoft.com/en-us/library/ms173109.aspx - rizzle
  • Int32不继承自继承自Object的ValueType吗?如果是这样,尽管有这种行为,int也是一个对象. - 克里斯农夫
  • 不,int的boxed类型继承自ValueType,它继承自Object.它们不是传统意义上的对象,因为a)int不是对int的引用,IT是int.b)int不是垃圾收集.如果你声明一个Int32,那么这个int是堆栈上的4个字节,故事结尾 - Binary Worrier

对象的定义:"对象"作为类System.Object的继承者与"对象"作为类型与"对象"作为引用类型的实例."

c# object

48
推荐指数
7
解决办法
2万
查看次数

堆栈和堆在c#

可能重复:
堆栈和堆的内容和位置

堆和堆栈之间的C#有所不同.我刚刚意识到我一直认为堆栈是RAM而堆是硬盘.但现在我不确定它是否正确.如果不是,那么如果将它们存储在一个地方有什么区别?

c# heap stack

13
推荐指数
1
解决办法
3万
查看次数

如何演示ac#变量存储,堆栈或堆的位置

我知道c#,就像Java一样,将源代码转换为字节码并由VM运行,因为C#案例是CIL存储在汇编中并由CLR执行.开发人员几乎不需要关心变量在堆栈上或堆上的位置(由GC处理)作为c ++,对吧?

他们是否有任何快速而直接的方式来证明变量存储在堆栈上或堆上?例如,如果我告诉某人,引用类型变量存储在堆上,或者本地值类型变量存储在堆栈上(对吗?).我怎样才能明确地表明这一点?在C++中,我可以获取变量的内存地址,并通过VS内存窗口查看存储在堆栈或堆内存中的值.

c#

6
推荐指数
1
解决办法
867
查看次数

值类型何时存储在堆栈(C#)中?

当我阅读"值和引用类型"一章的下一本书时,我脑海中浮现出一个问题:"值类型何时存储在堆栈中"?程序员无法初始化类中的任何值类型.因为当我们在类中初始化一些值类型的变量时,变量存储在堆中.

我的问题是:什么时候存储在堆栈中的值类型?

c#

1
推荐指数
1
解决办法
636
查看次数

变量如何存储在堆栈中?

我已经读过有两个内存区域,一个堆栈和另一个堆栈.基本数据类型(如int,double,float等)存储在堆栈中,而引用类型存储在堆上.正如我们所知,堆栈是LIFO指首先删除最后推送的元素.现在假设下面的代码

int first = 10;
double second = 20.0;
float third = 3.0F;
Run Code Online (Sandbox Code Playgroud)

因此,first将首先推,然后secondthird.所以thirdfloat类型的变量将位于堆栈顶部,但如果我使用以下代码(假设在C#中)

Console.WriteLine(second);
Run Code Online (Sandbox Code Playgroud)

second当变量third位于堆栈顶部时,如何访问变量的值?

c# heap stack

1
推荐指数
1
解决办法
825
查看次数