typedef int Status; typedef struct { char no[20]; char name[50]; char author[20]; char pub[50]; float price; }Book; typedef Book ElemType; typedef struct LNode { ElemType data; struct LNode* next; }LNode, * LinkList;
时间: 2024-03-28 20:38:26 浏览: 85
这段代码是关于链表的定义和书籍信息结构体的定义。其中,LinkList是一个指向LNode结构体的指针类型,而LNode结构体中包含了标志该节点的数据,即ElemType类型的data,以及指向下一节点的指针next。ElemType类型是一个Book结构体类型,其中包含了一本书的编号、名称、作者、出版社和价格等信息。这些定义可以用来实现链表存储一组书籍信息。
相关问题
将 Datatype 类型定义为结构类型, typedef struct{ int id; char name[20];//char *name; }Datatype;
在C语言中,`typedef`是一个关键字,用于创建别名,使得复杂的类型名称更易理解和使用。在这个例子中,`struct`是一种用户自定义的数据类型,它组合了两个成员:`int id` 和 `char name[20]`,其中`name`是一个长度为20的字符数组。原始定义可能使用指针表示`char *name`,但这里通过数组形式明确指定存储空间大小。
`typedef struct` Datatype { ... } Datatype; 它的作用是将这个自定义的`Datatype`结构体别名为直接使用`Datatype`的名字,无需每次引用时都写出完整的`struct`关键字。这样,在程序中可以直接使用`Datatype`来声明、初始化和处理这种数据类型。
举个例子:
```c
Datatype person1; // 直接使用typedef后的名字声明一个Datatype类型的变量
person1.id = 1;
strcpy(person1.name, "John"); // 或者person1.name[0] = 'J'; person1.name[1] = 'o'; ... person1.name[19] = '\0';
```
typedef struct { char name[20]; int age; }person; 这种写法和struct { char name[20]; int age; }person;有什么区别
这两种写法的区别在于是否使用了 `typedef` 关键字。使用 `typedef` 关键字的写法可以定义一个新的类型名 `person`,使得以后在定义变量时可以直接使用 `person` 作为类型名,而不需要再写一遍结构体定义。不使用 `typedef` 关键字的写法则需要在定义变量时再次写出结构体的定义。因此,使用 `typedef` 关键字可以让代码更加简洁易读,而不使用 `typedef` 关键字则可以更加清晰地表达出变量的类型。两种写法都是合法的,根据实际情况选择即可。
阅读全文