我有一个包含许多数组的头文件。每个数组对(即x0,y0)的长度相同,但不同的对具有不同的长度。
numPaths[] = 4;
pathLengths[] = {12, 11, 13, 10};
int x0[] ={4.0, 4.0, ...};
int x1[] ={224.0, 224.0, ...};
int x2[] ={446.0, 446.0, 446.0, ...};
int x3[] ={598.0, 598.0, ...};
int y0[] ={11.0, 11.0, 11.0, 15.0, ...};
int y1[] ={2.0, 2.0, 2.0, 6.0, 17.0, ...};
int y2[] ={1.0, 1.0, 1.0, 5.0, ...};
int y3[] ={4.0, 4.0, 4.0, 5.0, 10.0, ...};
我希望能够遍历这个数组列表并访问数据点信息。我不知道该怎么做,特别是因为路径长度不同。我在想这样的伪代码:
i=0;
n=0;
if i< numPaths:
if n < pathLengths[i]:
x_tot = x'[i]'[n]
y_tot = x'[i]'[n]
n++
i++
'[i]'
在引号中,因为这些数组的名称是字符串。
最佳答案
C 不是反射性语言。 x0
被称为 x0
而 x1
被称为 x1
的事实已被编译器丢弃。因此,一段代码无法执行“查找名称为 x1
的数组”操作,而这实际上是您的代码将尝试执行的操作。 C 的预处理器也可能有点过于生硬,无法在编译期间干净地完成此操作。
所以你能做的最好的事情是:
int *xs[] = {x0, x1, x2, x3};
for(int c < numPaths)
{
int *thisX = xs[c];
... read from thisX[0], thisX[1], etc...
}
因此,您所做的是告诉编译器获取 x0、x1、x2 等地址,并将它们放入一个数组中。这样你就可以根据索引查找数组的地址,然后从那里访问数组。
关于c - 遍历 C 中的多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16409522/