假设我想为多维数组中的每个数做一些事情。我发现你可以得到第一个数字的指针,然后使用指针加法。例如,下面的代码通过12
输出数字1
:对多维数组进行迭代
double a[2][3][2] = {{{1, 2}, {3, 4}, {5, 6}}, {{7, 8}, {9, 10}, {11, 12}}};
double *p = &a[0][0][0];
for (int i = 0; i < 12; i++)
cout << *(p + i) << endl;
是否unidiomatic考虑多维数组以这种方式是平?如果是这样,那么这样做的首选方式是什么?另外,是否有更简单的方法来编写double *p = &a[0][0][0];
以获取多维数组中第一个数字的指针(与您可以只为一维数组编写double *p = a;
一样)?
加一个用于“三星程序设计” – vsoftco
这难道不是太复杂了吗? – Numeri
@Numeri不,不是真的。 – Barry