69.多维数组对象的创建数量

  1. 69.多维数组对象的创建数量
    1. 69.1 题目
    2. 69.2 深入解析
    3. 69.3 答题示例
    4. 69.4 关键词联想

69.多维数组对象的创建数量


69.1 题目

int[,] strArray = new int[3, 4]这个语句创建了多少个int对象?
string[,] strArray = new string[3, 4]这个语句创建了多少个string对象?


69.2 深入解析

  • int[,] strArray = new int[3, 4]:分配一个二维数组对象,内含 12 个 int 槽位(值内联在数组内存中);面试表述为「12 个 int 元素」即可,不必说成 12 个堆上的「int 对象」。

  • string[,] strArray = new string[3, 4] 这个语句创建了0个 string 对象。虽然它创建了一个包含3行4列的二维数组,但数组中的元素是引用类型 string,而不是实际的 string 对象。每个元素初始为 null,因此没有实际的 string 对象被创建。


69.3 答题示例

“第一个语句分配一个 int[,],其中含 12 个 int 元素(值类型内联存储)。
第二个语句 string[,] strArray = new string[3, 4] 创建了0个string对象。因为string是引用类型,数组初始化时仅分配存储引用的空间,每个元素默认值为null,不会创建实际的string实例,所以没有string对象被创建。”


69.4 关键词联想

  • 值类型(int)vs 引用类型(string)
  • 数组元素初始化(默认值)
  • 引用类型默认值(null)
  • 值类型默认值(0 for int)
  • 多维数组元素数量计算(行×列)
  • 引用类型数组仅分配引用空间
  • 值类型数组直接创建元素实例


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏