CNE)的错误消息 错误消息:expected identifier before '(' token|我能知道是什么问题吗?提前-6ren">
gpt4 book ai didi

c - 访问嵌套结构的元素

转载 作者:行者123 更新时间:2023-12-03 07:37:39 24 4
gpt4 key购买 nike

当我执行以下代码时,我收到此行scanf("%s",A.(T+i)->CNE)的错误消息
错误消息:expected identifier before '(' token|我能知道是什么问题吗?提前致谢。

typedef struct date
{
int day;
int month;
int year;
}date;
typedef struct Student
{
char CNE[10];
char FirstName[30];
char LastName[30];
date BD;
float Grades[6];
}Student;
typedef struct Class
{
Student T[1500];
int dim;
}Class;
Class input(Class A)
{
int i=A.dim;
printf("Enter the student CNE : ");
scanf("%s",A.(T+i)->CNE);
}

最佳答案

.运算符之后唯一可以使用的是成员名称。它不能是诸如(T+i)的表达式。
通常,要访问成员i的元素T,将使用A.T[i],然后其CNE成员将是A.T[i].CNE
大概您一直在研究指针算法,并且对使用指针访问A.T[i]感兴趣。在这种情况下,A.T + i将给出i的元素A.T的地址。然后(A.T + i)->CNE将成为该元素的CNE成员。 (观察到A.T是一个数组,但是在此表达式中,它会自动转换为指向其第一个元素的指针。因此A.T + i等效于&A.T[0] + i,后者表示接受A.T[0]的地址并通过i元素将其前进。)

关于c - 访问嵌套结构的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65449223/

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