在向大家详细介绍C#数组之前,首先让大家了解下C#多维数组,然后介绍如何分解C#多维数组。
C#多维数组
但所有其他语言都把这称为“数组的数组”
◆C语言里有一种别的语言称为数组的数组的形式,但C语言称它为多维数组。
◆C语言中的数组就是一维数组,而这个数组的元素可以是另一个数组。
编译器在编译时会把carrot[i][j]解析为*(*(carrot+i)+j)的形式。
如何分解C#多维数组
在“数组的数组的数组”中的每一个单独的数组都可以看作是一个指针。这是因为在表达式中的数组名被编译器当作“指向数组***个元素的指针”。
内存中数组是如何布局的
在C#多维数组中,最右边的下标是***变化的,这个约定称为“行主序”。如何对数组进行初始化,只能够在数组声明时对它进行整体的初始化。之所以存在这个限制,并没有过硬的理由。在IEEE754标准浮点数实现中,0.0和0的位模式是完全一样的。
初始化二维字符串数组:
- char vegetables[][9] =
- {
- "beet",
- "barley",
- "basil",
- "broccoli",
- "beanes"
- };
一种有用的方法是建立指针数组,字符串常量可以数组初始化值:
- char *vegetables[] =
- {
- "beet",
- "barley",
- "basil",
- "broccoli",
- "beanes"
- };
【编辑推荐】