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