c语言数据结构中结构体定义问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言数据结构中结构体定义问题相关的知识,希望对你有一定的参考价值。

typedef struct student

int num;
struct student *next;
student;

如题中,struct student还没被定义出来,为什么就可以用来定义*next了?如果是这样,*next到底是什么类型?
struct student 这个结构体?

编译器逐行解析,在定义next之前,编译器已经知道struct student这个结构类型的存在,所以可以用它来定义next。

next是指向struct student结构的指针类型。一般像这种用法,都是用在单向链表的结点结构体中,next用于指向下一个结点。

next不是基本数据类型的指针,而是结构体指针,指针不一定只能指向基本类型,它可以指向任意形式的内存空间。

next可以指向它所属的结构体本身,这样就是形成一个只有一个结点的单向循环链表。
参考技术A next 只是一个地址
他可以是任意结构 不是因为未定义 而他地址指向的不能代表未定义的student结构体
只是代表一个地址而已 不同的是地址后面存放的是什么

哥哥 你别老局限与C语言的结构 指针代表的是地址 他指向的可以是任意结构

以上是关于c语言数据结构中结构体定义问题的主要内容,如果未能解决你的问题,请参考以下文章

C语言结构体定义

c语言中定义结构体都有哪些方法?

求解答c语言结构体定义中typedef的作用

C语言头文件中定义结构体的问题

C语言,结构体

C语言结构体数组的定义