C语言结构体自引用 图解教程

发布时间:2026/10/22 20:53:05
C语言结构体自引用 图解教程 C语言结构体自引用 图解教程小白版C语言结构体全局结构体变量与局部结构体变量示例代码#includestdio.h// 定义结构体类型struct Stu同时定义全局变量 s1、s2structStu{//学生的相关属性charname[20];intage;}s1,s2;// s1,s2 是全局变量intmain(){structStus3;// s3是局部变量定义在main函数内部return0;}一、自引用是什么一句话 一张图一个结构体里藏一个指向自己这种类型的指针让它能像糖葫芦一样一个个串起来就是链表。structNode{intdata;structNode*next;// 指向另一个同类型的Node};Mermaid 图解三个节点怎么串起来的指向指向尾巴Node1data10next●Node2data20next●Node3data30nextNULL结束看懂这张图每个方框是一个 Node方框里的next就是那个指针● 表示指向下一格的门牌号箭头就是顺着 next 找到下一个。ASCII 示意图更贴近内存的样子Node1 Node2 Node3 --------------- --------------- --------------- | data 10 | | data 20 | | data 30 | | next ------------ | next ------------ | next NULL | --------------- --------------- --------------- ↑ ↑ ↑ 从这出发 顺着箭头走到这里 这里到头停二、为什么只能放指针不能直接放自己图解核心直接放自己会无限套娃编译器算不出大小直接报错。// ❌ 错误structNode{intdata;structNodenext;// 套娃死循环};NodeNode里的NodeNode里的Node里的Node...无穷无尽...放指针就对了因为指针只占固定大小一张门牌号纸条纸条上只写一行地址Nodedatanext: 纸条另一个Node记忆点指针是一张记地址的纸条只占8个字节直接放自己是把整个屋子搬进来会套娃。三、指针 next 是怎么指过去的动态图structNoden1{10,NULL};structNoden2{20,NULL};n1.nextn2;// 把n2的地址写到n1的next里用一张 Mermaid 图表达游标 p 一路走的过程p从n1出发p p-next 往后挪p再往后挪指针pdata10data20NULL循环结束代码对应的每一步structNode*pn1;// p 先指向 n1while(p!NULL){printf(%d ,p-data);// 打印当前指向的数据pp-next;// p 顺着 next 挪到下一个}游标p像一个手电筒一直往下一格照照到空的NULL就停下来。四、完整可运行例子 内存图解#includestdio.hstructNode{intdata;structNode*next;};intmain(){structNoden1{10,NULL};structNoden2{20,NULL};structNoden3{30,NULL};n1.nextn2;// 串起来n2.nextn3;structNode*pn1;while(p!NULL){printf(%d ,p-data);pp-next;}printf(\n);return0;}运行结果10 20 30p 一开始在这里 ▼ [10] ──► [20] ──► [30] ──► NULL ▲ ▲ ▲ │ pnext │ pnext │ 遇到NULL循环结束五、给小白的三张记忆卡片放自己放指针结构体自引用里面放 指针 next为什么是指针?无限套娃 报错 ❌只占固定8字节 ✅指针用箭头访问 p-data遍历: p p-next走到 NULL 结束六、易错点配图记更牢自引用成员必须带*struct Node* next;最后一个节点的 next 要置 NULL否则游标一路乱走会崩溃c.nextNULL;// 给链表打上终点站标记指针访问成员用-别写成p.next遍历条件是while(p ! NULL)不是while(p)出错就跑飞。七、一句话总结自引用 结构体里放一个指向同类型的指针像手电筒一样从第一个节点一路照到 NULL就能把零散的节点串成一条灵活的链表。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询