首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

哪位大侠忙小弟我解释一下这个数组、指针的例子呀~

2012-04-28 
哪位大侠忙我解释一下这个数组、指针的例子呀~~~/* Program 7.9Multidimensional arrays and pointers*/#in

哪位大侠忙我解释一下这个数组、指针的例子呀~~~
/* Program 7.9 Multidimensional arrays and pointers*/
#include <stdio.h>

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

  char *pboard = *board; /* A pointer to char */

  for(int i = 0; i < 9; i++)
  printf(" board: %c\n", *(pboard + i));
  return 0;
}


-----------------例子结束-------------------------

非常不明白的地方是:

1.*(pboard + i)这个地方每次循环都得到什么结果?

2.如果大侠帮我写出每次循环的具体过程,就太感谢了~~~~

[解决办法]
每次循环都是指向p[i].
对于这种所谓的二维数组 board, p[i]对应着 board[m][n]. 其中i==m*3+n; n<3;
[解决办法]

探讨
其实还是不是很明白,就内个i不是从0到8么,那当它为8的时候,怎么就是数组中的数了呢?
还有您这个board[m][n]. 其中i==m*3+n; n<3;是公式?
新手,请见谅~~~

[解决办法]
*(pboard+i)就是随着i的递增指针往后移动。*pboard=board[0][0]

[解决办法]
楼上正解,pboard这样的指针 直接+ - 是很常见的,特别是在linux的编程中,呵呵呵
[解决办法]
或者楼主可以去看下 环形buffer是怎么设计的, 其实就是指针的来回跳动
[解决办法]
board分配连续9个字节空间 *pboard 指向一个字节空间,类型为char 剩下的你懂了吧?

热点排行