gpt4 book ai didi

c - 结构和链表访问。

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:08 25 4
gpt4 key购买 nike

#include <stdio.h>

int main(void)
{
typedef struct{
int a;
} cool;

cool x;

(&x)->a = 3;
x.a = 4;
}

我想知道 (&x)-> a 是否与 x.a 做同样的事情。我把它们都编码了起来,看起来它们都改变了x.a的值。我知道它一定是 -> 左侧的指针,但 (&x) 似乎没有问题。打印出 x.a 对他们两个都有效,并给了我正确的答案。我查阅了很多有关指针、链表和结构的资料,但仍然找不到答案。是否有可能得到解释?谢谢!

最佳答案

-> 运算符需要一个位于左侧的指针。 &x 返回 x 的地址,因此它满足该要求(即使它完全多余)。换个角度想...

cool *y = x;
y->a = 3;

. 运算符需要一个 stack allocated左侧的结构。 x 就是这样,所以 x.a 工作正常。

你也可以走另一条路,如果你有一个指针 y 你可以用 *y 取消引用它并在上面使用 . : (*y).a。这也是完全多余的。

关于c - 结构和链表访问。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36732580/

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