gpt4 book ai didi

c - 如何使用 typedef 结构体

转载 作者:行者123 更新时间:2023-11-30 18:34:46 25 4
gpt4 key购买 nike

我对 C 完全陌生,并且在使用指针和 typedef struct 结构方面遇到了麻烦。

我定义了两个 typedef struct:StudentClass,我想知道它们是否是指针:

typedef struct _Class {
char name;
int grade;
} Class;

typedef struct _Student {
int number;
Class *classes;
} Student;

int main() {
Student **students = (Student**) malloc(100 * sizeof(Student*));
Student * studentOne;
(*studentOne).number = 453;
}

这只是我程序的一部分,但我的问题是:为什么我们将数组 students 定义为双指针,将 Student *studentOne 定义为指针,但在_Studenttypedef 我们将数组 Class *classes 作为单个指针数组。

所以在我的程序中,结构体Student是一个指针,而结构体Class不是。为什么?

两个typedef struct的定义是相同的,那么什么时候使用结构体作为指针呢?

感谢您的回答。

最佳答案

不,类型别名Class(和其他)是不是指针类型。它们只是例如的别名。 结构_Class

所以代替(例如)

Student * studentOne;

你可以写

struct _Student * studentOne;

如果您也有 _Student 结构的类型别名!

关于c - 如何使用 typedef 结构体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50425499/

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