关于结构体的一个小问题

来源:百度知道 编辑:UC知道 时间:2024/07/03 05:09:18
学习数据结构时接触到了一个生成链式线性表的程序,里面有这样一个结构体:

typedef struct node
{
int data;
struct node *next;
}Lnode;

但是根据C标准结构体又是不允许递归的,所以struct node *next;应该是错误的啊。为什么这样写出的程序没问题呢?请指点。

这哪里是递归啊?next字段只不过是其自身类型的一个指针变量,像这样才是递归:
typedef struct node
{
int data;
struct node next;
}Lnode;

“根据C标准结构体又是不允许递归的”,请给出标准及其页码。

因为C标准结构体出现 梦想窗外 说的递归 编译时不能确定结构体大小
你贴的代码没有错误 是指针量在语言中有确定长度 编译这个结构体能确定其大小

struct node是个结构
struct node*是个指针
2个数据类型不一样