gpt4 book ai didi

C - 结构变量是指针吗?

转载 作者:太空狗 更新时间:2023-10-29 16:05:28 24 4
gpt4 key购买 nike

我搜索了很多,但找不到任何关于此的主题。我的问题是:结构变量是指针吗?如果每个输入都存储在结构成员的地址中,那么结构变量有什么用?

这是我用来检查结构变量的代码,当我打印存储在变量中的内容时,它给了我另一个地址,但我无法弄清楚该地址的用途。

这是我的代码及其输出:

 struct test
{
int a;
int b;
char c;
};

int main()
{

struct test f;

printf("%u", &f);
printf("\n%d", f);
printf("\n%u", &f.a);
printf("\n%u", &f.b);
}

输出:

6487616

6487600

6487616

6487620

最佳答案

简短回答:

长版本:上述程序中的所有打印语句都会调用未定义的行为,因为提供的参数与转换说明符不匹配。

要详细说明,要打印指针,您需要使用 %p 转换说明符,并将参数强制转换为 void *

结构变量没有通用(一劳永逸)格式说明符。您需要选择具有相应格式说明符的单个成员(或成员中的成员),并将其作为参数传递。

也就是说,关于第一个成员和访问权限,

[...] A pointer to a structure object, suitably converted, points to its initial member (or if that member is a bit-field, then to the unit in which it resides), and vice versa. [...]

关于C - 结构变量是指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50972300/

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