gpt4 book ai didi

c - C 中的二维数组未声明行大小

转载 作者:行者123 更新时间:2023-11-30 14:34:31 26 4
gpt4 key购买 nike

在一些用 C 编写的涉及二维数组的程序中,我注意到没有提到行大小,并且编译器也没有抛出任何与此相关的错误。但是当我通过提及行大小而不是列大小来尝试此操作时,编译器会抛出错误。

例如:

int arr[][5]; // correct

int arr[5][]; //compiler throws error

原因是什么?

最佳答案

我们可以在 C 中定义一个二维数组:

A [][n];

其中 n 是某个常数

我们必须包含数组中的列数,因为这指定了每行的大小。二维数组可以看作是一个行数组。一旦编译器知道数组中一行的大小(由第二个方括号中的值定义,这里是n),它就能够正确确定行的开头每行的。换句话说,需要计算您实际访问的项目的相对偏移量。

我们有偏移量 = (row*colwidth + col)

编译器使用行的大小(恰好是列的数量/计数)计算偏移量。

关于c - C 中的二维数组未声明行大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58939755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com