我们如何在 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个元素的数组个数
可以更改它以容纳您需要的元素数量。
我有一些多维数组,我必须 运行 它们在一个循环中。 我的代码如下所示:
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] == %d\n", naxes[3][2]);
这里N
表示3个元素的数组个数
可以更改它以容纳您需要的元素数量。