结构体
如果你知道变量是什么,也大概了解指针是什么,那先看下面的代码
typedef struct node{
int data;
struct node *next;
}NODE,*LinkList;
这里就运用到结构体,结构体就是将许多个类型的变量打包变成一个新的变量
打个比方:
- 首先,变量可以比喻成一个只有一个房间的房子
- 然后这个房子占多大的地,就是这个变量的数据类型
- 这个房子的地址,比如某街道多少多少号,就是变量的物理地址
- 而门牌号,如3栋A梯,就是这个变量的变量名
- 就是然后这个房子的房间里面可以放各种家具,也就是给变量赋值
- 而结构体就相当于是一个很多房间的大房子
- 每一个房间都可以看作是一个独立的单独房间的房子,也就是结构体是由很多个不同数据类型的变量组成的
- 但是这个大房子只有一个门牌号,里面有很多个房间号,唯一的门牌号就是这个结构体的名字,而里面的一个个房间号就是不同类型的变量的变量名
所以结构体是一个很多个不同类型的变量组合而成的大变量
- 然后上面的node,其实只是一个样板房,就是只是参考的,在存储空间里还没有真正创建
- node就是这个样板的名字,其中有一个int大小的放数据的房间叫做data
- 还有一个用来存放地址的指针房间*next,而且这个指针只能指向node类型的房子
要提一下,指针要指向数据,他的类型一定要和它指的类型是一样的,虽然指针内存的地址的大小是固定,但是对于数据操作的操作码会不一样,反正要一样就对了
- 然后刚刚说的只是样板房,下面的NODE才是真正建了一个这样的房子
- 也就是建了一个node类型,门牌号叫NODE的房子
- 然后也建了一个能够指向node类型房子的指针*LinkList
这就是刚刚的那段代码的大概意思了,结构体也就是这样的一个房子,然后顺着房子可以想象函数就是一个小区,里面有很多个房子,然后各种逻辑操作,其实就是小区的道路,而操作代码,就是你在这个小区里面怎么走、在房子里放什么,感觉都抽象成具体的东西会更好理解
大概就是这样了,只是个人理解哈,希望能够帮到你~