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



我有一些多维数组,我必须在循环中运行它们。我的代码是这样的:

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:

指针数组,而不是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] == %dn", naxes[3][2]);

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

相关内容

  • 没有找到相关文章

最新更新