我们如何在 C 编程中遍历多个数组?

How can we iterate through multiple arrays in C programming?

我有一些多维数组,我必须 运行 它们在一个循环中。 我的代码如下所示:

int naxes1[3] = { 10,20,1};
int naxes2[3] = { 10,20,1};
int naxes3[3] = { 10,20,1};

我喜欢这样的数组

int naxes[3] = {naxes1, naxes2, naxes3};

这样我就可以像这样遍历它们:

for ( i=0; i<3; i++)
{
    fits_get_img_size(names[0],  3, naxes[i],  &status);
}

在这里,我使用的是 cfitsio 库,它将 naxes1、naxes2、naxes3 作为三个 维数组。 简单来说,我们如何通过多个数组进行交互?

你很亲近,但你必须记住,例如naxes1 不是 int,但它可以是 int *

因此,您应该有一个指向 int:

pointer 数组,而不是 int 数组
int *naxes[3] = {naxes1, naxes2, naxes3};

如果您只尝试编译您的程序,这当然应该变得非常明显。下次,请尝试这样做,并在提问之前实际 阅读 您收到的错误消息(它们通常包含有关您应该做什么的提示)。

这取决于您的需求。
正如 Joachim Pileborg 在他的回答中指出的那样,您可以使用指针数组。

另一方面,您也可以在程序的开头定义一个二维数组,其中包含您想要的值:

#define  N  4
int naxes[N][3] = { {10,20,1}, { 10,20,1}, { 10,20,1}, {1, 2, 3} };

printf("naxes[3][2] == %d\n", naxes[3][2]);

这里N表示3个元素的数组个数
可以更改它以容纳您需要的元素数量。