gpt4 book ai didi

c# - 堆和堆栈c#上常规类静态类静态方法实例方法和数据成员的内存分配?

转载 作者:太空狗 更新时间:2023-10-29 21:19:24 28 4
gpt4 key购买 nike

<分区>

本书的大部分内容从不谈论程序如何执行以及如何在堆栈和堆上为它们分配内存。数据何时存储在堆栈上,何时存储在堆上。

假设我有一个像

这样的普通类(class)
public class MyClass
{
int Age=0;
string strName="None"
Double Salary=0;

public void Data1()
{
Age=30;
strName="Robin";
Salary=3500;
}
}

问题

1) 那么对于上面的类,内存将如何分配。当程序运行时,内存将被分配,或者当我们创建实例时,内存将被分配。当我们通过实例调用 Data1() 时会发生什么以及如何分配内存。内存将分配给函数调用或数据成员初始化?告诉我将为 agenamesalary 分配多少内存。内存将在堆栈或堆上分配。

public class MyClass
{
static int y=0;
static string strComp="None"
int Age=0;
string strName="None"
Double Salary=0;

public void Data1()
{
Age=30;
strName="Robin";
Salary=3500;
}

public static void Data3()
{
y=50;
strComp="Hello";
}
}

2) 如何以及何时为静态数据成员和函数分配内存。当我们打电话时MyClass.Data3() 然后内存将被分配或当我们刚刚运行应用程序时。内存分配在堆上还是栈上?

3) 如何为静态类分配内存。存储在堆或堆栈上的静态类...如果是堆栈,那为什么?

这里我问了几个问题,请详细解释。谢谢。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com