C语言 对于X维数组,其中X大于1,只有第一个维度是可选的,其余的是强制性的



我正试图让我的头围绕这个,但因为我是新的C我只是无法想象它将如何在或超越3D数组。我知道我们必须提到静态1D数组的大小,但在2D数组中,第一个维度在声明中是可选的,如:

int arr[][2]={{2,3},{4,8},{5,3}};

但是X维数组呢?以下是可以的还是只提到第一个维度是可选的,其余的是必要的?

 int arr[][][2]= blah blah;
 int arr[][][][8]= blah blah;

我知道在上述二维数组的情况下,使用arr执行指针算术是必要的,但我无法想象对于维度大于2的数组,事情将如何解决。

只能留一个空格。为了知道如何得到一个特定的值,它需要能够计算除第一个值之外的所有值的偏移量。

例如:

char[]数组[3]

系统知道3个字节(假设1字节字符)*数组的第一部分索引+ 1为第二部分的每一部分。

char数组[][2][3]

系统知道6字节(2*3)字节*数组索引的第一部分+ 3 *第二部分+ 1 *最后一部分。

如果2不存在,你无法计算出基于第一个索引值的偏移距离。

相关内容

  • 没有找到相关文章

最新更新