通过指针访问二维(或三维)数组

时间:2008-12-07 00:25:26

标签: c++ c arrays pointers

如果你有这样的数组:

int foo[3][2][2];

你做了:

int *bar = &foo[0][0][0];

这是它的工作方式吗?

*bar == foo[0][0][0];
*(bar+1) == foo[0][0][1];
*(bar+2) == foo[0][1][0];
*(bar+3) == foo[0][1][1];
*(bar+4) == foo[1][0][0];

我不确定是否有一些代码依赖于它是否有效。

2 个答案:

答案 0 :(得分:4)

是的,这叫做row major ordering,是C正在使用的。

答案 1 :(得分:0)

在大多数系统上,是的。