C语言typedef问题与结构体数组问题

C语言typedef问题与结构体数组问题

问题描述:

typedef struct students
{
    long code;
    char *name;
    float score[3];
    float sum;
}cla[40];

这样定义是什么意思呢?
cla代替了struct students?
正确的写法是怎么样的

定义了一个班级类型,它代表40个学生,cla代替了students[40]
以后可以定义变量cla cla1;
cla1就是一个40个students组成的数组

语法上没问题,不过个人觉得这种写法除了让别人不爽自己不爽之外,并没有什么卵用。

 这么写是错的,应该写
struct students
{
    long code;
    char *name;
    float score[3];
    float sum;
};
students cla[40];

你的这个定义没问题。cla就是一个类型别名,它是结构体元素为你结构体中定义的各个元素,长度为40的数组。

这个定义是没问题的,意思是定义了一个结构体类型student,然后又定义了一个类型为student的数组变量cla[40];

你的定义等价于:

typedef struct students
{
long code;
char *name;
float score[3];
float sum;
};
student cla[40];