C++自定义数据类型:结构体实现链表输出

需积分: 29 6 下载量 199 浏览量 更新于2024-07-13 收藏 486KB PPT 举报
在C++中,自定义数据类型是通过创建结构体(struct)来实现的,结构体允许我们将不同类型的数据组合在一起形成一个全新的数据类型。例如,我们来看一个名为`STU`的结构体,它可能代表学生信息,包含`num`(整型)、`score`(浮点型)以及可能还有其他成员如姓名、性别和地址等。定义结构体的语法如下: ```cpp struct STU { int num; float score; // 其他成员... }; ``` 函数`print(STU *head)`用于遍历并输出链表中的`STU`结构体数据。这里的链表是由`STU`结构体类型的节点构成的,每个节点通过`next`指针相连。遍历过程中,当前节点`p`首先指向头结点`head`,然后在`while`循环中,依次输出`num`和`score`,直到`p`变为`NULL`,表示链表结束。 ```cpp void print(STU *head) { STU *p; p = head; while (p != NULL) { cout << p->num << '\t' << p->score << '\n'; p = p->next; } } ``` 在给出的链表中,我们可以看到节点的编号和数据,如`2000H`、`3000H`等,这些可能是内存地址或者特定的标识符。当调用`print`函数时,输出的格式是这样的: ``` A 3000H B 3050H C 6000H D 2090H B '\0' ``` 这里`'\0'`通常表示字符串的结束标志。结构体变量`student1`、`student2`的定义方式有三种: 1. 先定义结构体类型再定义变量: ```cpp struct Student { int num; char name[20]; char sex; // ... }; Student student1, student2; ``` 2. 在定义类型的同时定义变量: ```cpp struct Student { int num; char name[20]; char sex; // ... } student1, student2; ``` 3. 直接定义结构体类型变量,不显示结构体名称: ```cpp struct { int num; char name[20]; char sex; // ... } student1, student2; ``` 结构体变量在内存中是按照成员的顺序存储的,且只在声明变量时分配内存,结构体类型本身不占用额外的空间。对于结构体中的成员,可以直接通过`.`运算符访问和赋值,它们的行为就像独立的变量一样。此外,结构体的成员还可以是其他结构体类型,如包含日期信息的`struct Date`。 总结来说,这段代码展示了如何在C++中使用自定义数据类型`STU`创建链表,并通过函数操作和显示这些数据。同时,它也演示了结构体的定义、变量的声明和内存管理规则。