通过指针访问结构中的值? (C++)
Posted
技术标签:
【中文标题】通过指针访问结构中的值? (C++)【英文标题】:Access a value from a struct via a pointer? (C++) 【发布时间】:2010-01-23 08:06:51 【问题描述】:这是我的结构:
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
;
如果重要的话,checkers[0-1] 代表哪边,[1-12] 是每件的唯一编号。
无论如何,我有一个 8x8 网格,它要么指向 NULL,要么指向一个棋盘格。我想要做的是能够访问该检查器,而不是通过其唯一 ID(例如 checkers[0][5]),而是通过它在网格上的位置。
如何以这种方式访问数据成员?我试着总结一下:
宣布了棋盘游戏Board。设置网格,以便我在[0][0]
有一个棋子。这将是checkers[0][1]
。因此,我不想做cout <<checkers[0][1].number
,而是希望能够在不知道其ID的情况下打印检查器的编号,而是知道该特定检查器位于[0][0]
谢谢。
【问题讨论】:
【参考方案1】:cout << grid[0][0]->number;
如果网格是指向 Checker 结构的二维指针数组,则 grid[0][0] 是指向该位置 (0, 0) 的 Checker 的指针。 ->
语法取消引用指针,然后访问 number
字段。
如果我误解了您的问题或我的回复失败,请告诉我,我会很乐意删除。晚了。 :)
【讨论】:
请注意x->y
等价于(*x).y
(除非运算符重载起作用)。
但是如果在操作符重载起作用时它们不等价,那就开枪打死这样做的开发人员:-(
好的,它也适用于我。我有一个带有字符串的结构和一个指向该结构的指针。要使用该字符串获得 std::string,我必须创建一个字符串流并使用
以上是关于通过指针访问结构中的值? (C++)的主要内容,如果未能解决你的问题,请参考以下文章