gpt4 book ai didi

c - 通过指针访问结构中的指针

转载 作者:行者123 更新时间:2023-12-04 02:43:35 26 4
gpt4 key购买 nike

因此,我在阅读邻接链表时​​一直在查看结构,并想到了一个想法。

How do I properly access a pointer in a struct using a pointer to the struct?

例如我有一个这样的结构声明:

typedef struct Sample{
int x;
int *y;
} Sample;

Sample test, *pter; // Declare the struct and a pointer to it.
pter = &test;

所以现在我有一个指向结构的指针,我知道我可以像这样访问 int x 中的数据:pter->x 这与这个。但是,我在选择/弄清楚如何通过指针访问 *y 时遇到了麻烦。

我的一个 friend 说我应该这样做:*pter->y,但是我认为这样做更有意义:pter->*y。哪个是正确/唯一/适当/正确的方法?也许它们都可以工作?

最佳答案

对于 y 的值使用 pter->y,对于存储在 y 的值使用 *pter->y (相当于 *(pter->y) )。

备注:precedence -> 操作符高于 * 取消引用操作符,这就是为什么 *pter->y == *(pter->y )

编辑:根据评论。

表达式 pter-> *y 应该是一个语法错误,因为它不是一个有效的表达式,原因如下。

  1. 如果 * 被解释为一元取消引用运算符并应用于 y,则 y 是未知变量名(没有 pter)。
  2. 如果 * 被视为乘法运算符,则 -> 不能出现在 * 之前。

所以在这两种情况下编译都会产生错误。

关于c - 通过指针访问结构中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19335573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com