通过指针从结构中访问值? (C ++)

时间:2010-01-23 08:06:52

标签: c++ pointers struct

这是我的结构:

struct Checker
{
  short row;
  short col;
  unsigned short number;
  short color;
};

现在,我还要制作另一个结构来代表棋盘:

struct Board
{
  Checker checkers[2][13]; // Zeroth entry of 13 is not used.
  Checker *grid[8][8]; // each entry holds Null or an address
                       // of an element in the checkers array
};

如果重要,检查员[0-1]代表哪一方,[1-12]是每件的唯一编号。

无论如何,我有一个8x8网格,要么指向NULL,要么是一个检查器。我想要做的是能够访问该检查器而不是通过其唯一ID(例如检查器[0] [5]),而是通过它在网格上的位置。

如何以这种方式访问​​数据成员?我试着总结一下:

宣布棋盘游戏。设置网格,以便我在[0][0]处有一个检查器。这将是checkers[0][1]。因此,我希望能够在不知道其ID的情况下打印检查器编号,而不是知道该特定检查器位于cout <<checkers[0][1].number

,而不是[0][0]

感谢。

1 个答案:

答案 0 :(得分:3)

cout << grid[0][0]->number;

如果网格是指向Checker结构的二维指针数组,则grid [0] [0]是指向该位置(0,0)的Checker的指针。 ->语法取消引用指针,然后访问number字段。

如果我误解了你的问题或者我的回复失败了,请告诉我,我很乐意删除。晚了。 :)