/*
链表的简单分解
*/
#include <stdio.h>
#include <windows.h>
#pragma warning(disable:4996)
//创建结构体
struct num
{
char name[10];//记录姓名
int age;//记录年龄
struct num *next;//如果是最后一个结构,它指向NULL.如果不是,它指向下一个结构的地址
};
int main(void)
{
int i;//循环变量
struct num *head = NULL;//指向第一个结构的地址
struct num ch[3];//结构指针
head = ch;//将head指向第一个结构的地址
//循环遍历输入信息
for (i = 0; i < 3; i++)
{
printf("请输入员工姓名:\n");
scanf("%s", &ch[i].name);
printf("请输入员工年龄:\n");
scanf("%d", &ch[i].age);
}
//循环遍历操作链表的节点
for (i = 0; i < 3; i++)
{
if (i == 2)//一共有三个节点,如果此时i==2代表是第三个节点(也就是最后一个节点),那么最后一个节点的(也就是最后一个结构).next就指向NULL
{
ch[i].next = NULL;
}
else//只要不是最后一个节点(也就是最后一个结构),那么.next就指向下一个节点的地址
{
ch[i].next = &ch[i + 1];
}
}
//ch[0].next = &ch[1];
//ch[1].next = &ch[2];
//ch[2].next = NULL;
//循环遍历打印信息
for (i = 0; i < 3; i++)
{
printf("%s\t%d\n", (head + i)->name, (head + i)->age);//使用head指向的地址来打印信息
}
system("pause");
return 0;
}