C语言-静态链表

链表:结构体变量和指向结构体变量的指针构成链表。
链表的头指针存放结构体变量的首地址,结构体的指针变量存放下一个结构体变量的首地址,依次递推,直至最后一个结构体指针变量next=NULL结束。
单链表:各个节点在内存中星罗棋布、散落天涯。
静态链表所有的节点都是在程序中定义的,不是临时开辟的,也不能用完后释放。静态链表分配一整片连续的内存空间,各个节点集中安置。
在这里插入图片描述

在这里插入图片描述
链表实例:

#include <stdio.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;


//声明或者叫用户自定义一个Student类型的结构体
struct Student {
	//定义成员
	int num;
	float score;
	Student *next;
};

int main() {
	Student a, b, c, *head, *p;
	a.num = 2111901199; a.score = 90.5;
	b.num = 2111901197; b.score = 88.5;
	c.num = 2111901198; c.score = 99.5;
	head = &a;
	a.next = &b;
	b.next = &c;
	c.next = NULL;
	p = head;
	do {
	printf_s("%d,%f\n",p->num,p->score );
	//p.num表示不明,p表示结构体变量a的起始地址即a.unm的地址。
	//*p.num,"."成员运算符的优先级最高,因此该式等价于*(p.num),表示错误。
	//(*p)表示p指向结构体变量,(*p).num是p指向结构体变量中的成员num,即a.num。
	printf_s("%d,%f\n", (*p).num, (*p).score);
	//p = p->next;//等价于p = (*p).next;表示将p->next的值赋给p。
	p = (*p).next;

	} while (p != NULL);
	return 0;

}

实验结果:
在这里插入图片描述
静态链表的存储结构:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值