gpt4 book ai didi

c - 访问 c 中结构中的数组成员是访问值还是地址?

转载 作者:太空狗 更新时间:2023-10-29 16:00:37 26 4
gpt4 key购买 nike

在下面的代码中:

struct a  {
char name[18];
}customer;
scanf("%s",customer.name);
printf("%s",customer.name);
struct a *pt=&customer; `

因为将数组名指向that的第一个元素,所以customer.name是否指向这个成员的第一个元素?

在一本书中写到 *(customer.name+2) 等同于 customer.name[2]pt->name[ 2]。但我无法理解这些注释,也无法理解为什么 scanf() 函数中的 customer.name 是地址而 printf() 函数中不是地址?

最佳答案

在此处的 print()scanf() 示例中,customer.name 解析为指向第一个元素的指针数组 name,它是 struct a 类型的 customer 变量的成员。

为了消除混淆,在 %s 格式说明符与 printf() 的情况下,期望的参数类型是指向数组第一个元素的指针。所以,在这个 printf() 调用的情况下,参数 customer.name 是正确的,它是一个指针。

关于c - 访问 c 中结构中的数组成员是访问值还是地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48249573/

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