c# 高级编程 7章152页 【数组的声明、初始化、访问及内存结构】

145 阅读1分钟

声明数组

int[] myArray;

初始化数组

  • 数组是引用类型,为数组里的4个int开辟的内存位置在托管堆上
myArray = new int[4];
  • 初始化的时候,还可以顺手为用初始化器4个int赋值
  • {},这就是初始化器
  • 初始化器只能在声明时使用,不能在声明后使用

以下为三种用初始化器,来为数组的每个元素赋值的方式:

myArray = new int[4] {4, 7, 11, 2};
  • 初始化加赋值的时候,不指定数组大小也可以,编译器会自动统计元素个数
myArray = new int[] {4, 7, 11, 2};
  • 还有一种更简化的形式
myArray = {4, 7, 11, 2};

访问数组

  • 可以用索引器访问其中元素
  • [],这就是索引器
  • foreach语句,是利用IEnumerable和IEnumerator接口,遍历数组

数组的内存结构

  • myArray这个变量存储在栈上,其内容是托管堆中的一个内存地址,该内存地址上的内容为数组第一个元素。
  • 因此可知,无论值类型还是引用类型,数组元素都存储在托管堆上

必须注意:

  • 元素为引用类型的数组,使用元素之前,一定得确保已赋值,否则会有NullReferenceException