Предположим, я хочу что-то сделать для каждого числа в многомерном массиве. Я обнаружил, что вы можете получить указатель на первый номер, а затем использовать добавление указателя использования. Например, следующий код выводит номер 1
через 12
:Итерация по многомерным массивам
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