易百教程

使用指针访问多维数组

在C语言中,如何使用指针访问多维数组?请参考以下代码:

#include <stdio.h>

int main(void)
{
    char board[3][3] = {
      { '1','2','3' },
      { '4','5','6' },
      { '7','8','9' }
    };

    char *pboard = *board;  //  一个指向 char 的指针
    for (int i = 0; i < 9; ++i)
        printf(" board: %c\n", *(pboard + i));

    system("pause");
    return 0;
}

执行上面示例代码,得到以下结果:

 board: 1
 board: 2
 board: 3
 board: 4
 board: 5
 board: 6
 board: 7
 board: 8
 board: 9

以下代码使用数组的第一个元素的地址初始化pboard。然后使用普通指针算法在数组中移动:

char *pboard = *board;               // A pointer to char
for(int i = 0 ; i < 9 ; ++i)
      printf(" board: %c\n", *(pboard + i));