gpt4 book ai didi

c - 访问struct的指针成员数据

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:36 24 4
gpt4 key购买 nike

我正在尝试访问作为结构成员的指针的数据。

typedef struct
{
int i1;
int* pi1;
} S;


int main()
{
S s1 = { 5 , &(s1.i1) };

printf("%u\n%u\n" , s1.i1 , s1.pi1 ); //here is the problem

return 0;
}

问题出在printf的第二个参数上。当我运行该程序时,我在控制台中得到以下结果:5 ...(下一行)2381238723(每次都不一样)。这是正确的,结果并不出人意料。我尝试过类似的事情:

*(s1.pi1) 

s1.*pi1

它们都不起作用。 C 中是否有任何运算符或方法可以执行此操作?

最佳答案

我在这里猜测,但我认为您可能打算执行以下操作:

typedef struct
{
int i1;
int* pi1;
} S;


int main()
{
// Take the address of s1.i1, not s1.pi1
S s1 = { 5 , &(s1.i1) };

// Dereference s1.pi1
printf("%u\n%u\n" , s1.i1 , *s1.pi1 );

return 0;
}

关于c - 访问struct的指针成员数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21066556/

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