代码之家  ›  专栏  ›  技术社区  ›  fmsf

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

  •  1
  • fmsf  · 技术社区  · 17 年前

    当你有一个这样的数组时:

    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 回复  |  直到 17 年前
        1
  •  4
  •   rob    17 年前

    是的,那叫 row major ordering ,这就是C所使用的。

        2
  •  0
  •   Stefan Mai    17 年前

    在大多数系统中,是的。