假設我想爲多維數組中的每個數做一些事情。我發現你可以得到第一個數字的指針,然後使用指針加法。例如,下面的代碼通過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