当前位置 : 主页 > 网络编程 > 其它编程 >

初学c#读书笔记(三)--类型、存储和变量B

来源:互联网 收集:自由互联 发布时间:2023-07-02
7、栈和堆运行中的程序使用两个内存区域来存储数据:栈和堆。栈:栈是一个内存数组,是一个LIFO(last-infirst-out后进先出)的数据结构。栈存储几种类型 7、栈和堆 运行中的程序使用
7、栈和堆运行中的程序使用两个内存区域来存储数据:栈和堆。栈:栈是一个内存数组,是一个LIFO(last-infirst-out后进先出)的数据结构。栈存储几种类型

7、栈和堆

  运行中的程序使用两个内存区域来存储数据:栈和堆。

  栈:    栈是一个内存数组,是一个LIFO(last-in first-out 后进先出)的数据结构。    栈存储几种类型的数据:      某些类型的变量的值;      程序当前的执行环境;      传递给方法的参数。    栈的特征:      数据只能从栈的顶端插入或删除;      把数据放到栈顶称为入栈(push);      从栈顶删除数据称为出栈(pop);

  堆:    堆是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据。与栈不同,堆里的内存可以任意顺序存入和移除。    虽然程序可以在堆里保存数据,但并不能显式地删除它们。CLR的自动GC(Garbage Collector 垃圾收集器)在判断出程序代码将不会再访问某数据项时,自动清除无主的堆对象。

8、值类型和引用类型

  值类型只需要一段单独的内存,用于存储实际的数据。  引用类型需要两段内存,第一段存储实际的数据,它总是位于堆中,第二段是一个引用,指向数据在堆中的存放位置。  如果数据不是其他类型的成员,值类型,数据存放在栈里。对于引用类型,实际数据存放在堆里而引用存放在栈里。  如果数据是另一个类型的成员:    引用类型对象的数据部分始终存放在堆里;    值类型对象,或引用类型数据的引用部分可以存放在堆里,也可以存放在栈里,这依赖于实际环境。    请记住,对于一个引用类型,其实力的数据部分始终存放在堆里,无论是值类型还是引用类型。    那结构(struct-值类型)数据部分中的值类型和引用类型在内存中是如何存放的呢?

              值类型            引用类型预定义类型      sbyte byte float double    object string           short ushort int uint           char decimal long ulong           bool

用户定义类型     struct enum          class interface delegate array

9、变量

  变量时一种名称,表示程序执行时存储在内存中的数据。  c#提供了4中变量:本地变量、字段、参数、数组元素

  变量在使用前必须声明:    给变量命名,并为它关联一种类型;    让编译器为它分配一块内存。

int var;

  变量初始化

int var = 10 ;

  自动初始化    变量类型    存储位置    自动初始化    用途

    本地变量    栈或者栈和堆  否        用于函数成员内部的本地计算    类字段     堆       是        类的成员    结构字段    栈或堆     是        结构的成员    参数      栈       否        用于把值传入或传出方法    数组元素    堆       是        数组的成员

  多重变量声明    多重变量声明中的变量必须类型相同;    变量名必须用逗号分隔,可以在变量名后包含初始化语句。

int var1 = 10 , var2, var3; string str1, int var4; // 错误,变量类型必须相同

  使用变量

1 int var = 10 ; // 初始化变量 2 Console.WriteLine(var); // 在控制台打印出变量的值【本文来源:香港服务器租用 http://www.558idc.com/st.html欢迎留下您的宝贵建议】
上一篇:钉钉群组全员禁言怎么设置
下一篇:没有了
网友评论