C#基础 [04] 存储和变量

一、栈和堆

  在程序运行时,它的数据是存储在内存中的。而类型决定了一个数据项需要多大的内存、存储在什么地方以及如何存储。运行中的程序使用两个内存区域来存储数据——栈和堆。

  1.栈

    1).定义

      栈是一个内存数组,是一个后进先出(LIFO,last-in first-out)的数据结构。程序在编译期间就已经分配好了它所需要的栈空间的大小。栈一般用于存储变量的值、当前程序的执行环境和传递个方法的参数。

    2).特征

      数据只能从栈顶插入和删除;把数据插入栈顶称为“入栈”(push);把数据从栈顶删除称为“出栈”(pop)。

      

  2.堆

    堆是一块内存区域,在堆里可以分配大块的内存用于存储某类型的数据对象。与栈的存取方式不同,堆里的内存能够以任何顺序存入和移除。

    

二、变量

  1.变量定义

    变量是程序为内存空间取的一个名字,它表示程序执行时存储在内存中的数据。根据变量所在的位置,可以把变量分为以下四种:

       1).本地变量:定义在方法中的变量,用于在方法的作用域保存临时数据。

       2).参数:定义在方法的参数列表中的临时变量,用于从一个方法到另一个方法传递参数。

       3).字段:作为类型的成员,定义在类型中,用于保存与类型或类型的实例相关的数据。

       4).数组元素:定义在数组中,作为数据项的有序集合的一个成员。

  2.变量的声明和初始化

    变量的声明完成两件事情:

      1).为变量命名,并且为它指定一种类型。

      2).让编译器为它分配一块内存空间。

    变量的声明和初始化经常通过一条语句来完成。就是声明一个变量,并且为变量赋初值。我在这里分开写,以说明整个过程。  

1             // 1.声明一个整型变量x
2             int x;
3             // 2.初始化x
4             x = 10;
5             // 3.使用变量
6             Console.WriteLine(x);

   3.多重变量声明

    在一条声明语句可以声明多变量。但必须遵守以下规则:

      1).多个变量的类型必须相同,并且只能在语句的开头写一次类型。

      2).多个变量名之间用逗号表达式分隔。

      3).每个变量名后面都可以包含初始化语句。  

1             // 用一条语句声明3个整型变量x,y和z
2             int x, y = 10, z = 1000;

  4.变量的自动初始化

    一些类型的变量在声明的时候如果没有初始化,就会被自动设为该类型的默认值;而另一些不能自动初始化为默认值的类型的变量的值在赋值之前为“未定义”。

    本地变量和方法的参数是不能被自动初始化的,而类的字段和数组元素是可以被自动初始化的。

      

原文地址:https://www.cnblogs.com/sunyunh/p/2836612.html