ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 顺序表 表的概念不言而寓: || |--| || || || || || || || || || || || 这就是一张表,单列的,对吧。很简单,也很复杂。(参照c语言初探——底层) 我再抛出一个问题: int a[10];和 char b[40];你们怎么理解这两段代码? 我可不可以看成是10个4字节的int类型的表 或者说,是不是可以看成是40个1字节的char型的表 ### 它们本质上就是**40个1字节存储单元,仅此而已**。 那么我现在定义一个结构体 struct node { int sig = 10;          //信号量(具体看操作系统之进程——PCB) int value = 0; }; 现在初始化第一个结点: node N1; N1.sig--; N1.value=10; 现在初始化第二个结点: node N2; N2.sig--; N2.value=10; ... 现在初始化第十个结点: node N10; N10.sig--; N10.value=10; 好了,现在我想知道,你们认为sig和value分别都做了什么? **小明**:sig虽然是一个变量,但是可以看成是一个从10自减为0的计数器,这样初始化下来,就相当于10个值为10的顺序表。 可是它有什么用呢? **蝌蚪哥**:你学知识不能问有用没用,因为我不知道你将来会不会用到。是吧。sig说的浅显一点儿就是计数器,说的深一点儿,就是数组中“[]索引”。 同样的,我希望你们以后看到结构体中的变量,会有2种想法:**1.计数器。2.单一变量。** **小明**:噢,那这么说,其实就根本没有数组喽,那只是抽象出来的一种数据结构。和我详细的讲一下吧。 **蝌蚪哥**:不能说是没有,只能说数组也是“打包”起来的指针的一种,看c语言的进阶数组详解吧,这里只讨论顺序表。当你有了这个想法,其他的结构也就好理解了,因为所有的数据结构都是“打包”的顺序表中的数据。**是抽象的!!!**