gpt4 book ai didi

C 数组数组

转载 作者:行者123 更新时间:2023-12-01 12:51:24 25 4
gpt4 key购买 nike

只是想弄清楚我需要适应度函数的数组结构。它是一个数组数组:

double fitness[][2][9][11]

仅根据我的理解,[2][9][11] 数组将是一个 2 x 9 x 11 3 暗淡数组。没关系,但是 [] 正在让我失望。这对数组结构有何贡献?有人可以给我一个输入示例吗(或者可能尺寸更小,因为我发布的数组会很大)。

非常感谢。

编辑:这是在一个函数内

最佳答案

如果减少维数,它会变得更清晰一些。让我们大胆一点,移除除一维之外的所有维度,然后声明

 extern double foo[];

这样做是声明一个 不完整类型 , 一个未知数量的 double 数组。如果您提供了明确数量的元素,则该类型将是完整的。不同的是你不能申请 sizeof到不完整的类型:编译器无法知道它们的大小,因为它们是不完整的。

现在,如果我们声明一个数组数组,我们不能让两个维度都是未知的(就像在 double foo[][] 中一样)。这是为什么?以前编译器可以计算 foo[42] 的位置因为它知道 double 的大小(因为 double 是一个完整的类型)。计算 foo[1][42]它必须知道元素类型的大小。换句话说,元素类型必须是完整的。在 C 中,最右边的维度变化最快,因此这里的元素类型由除最左边的维度之外的所有维度给出: double [42]在您的原始问题中,它是 double [2][9][11] .

最后,如果不需要完整数组的大小,可以将最左边的维度留空。

关于C 数组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249631/

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