结构体、链表

一、结构体

1、定义

自定义数据类型;任意由程序员构建的新类型。

结构体类型声明:                ' . '为结构体成员运算符。

2、结构体变量的定义

        struct 类型名  变量                进行的是变量的赋值。

变量的初始化:struct 类型名  变量  = {...,...,...};        与结构体中声明的成员次序一致。

部分成员初始化,例如:        其他的未初始化的为0。

3、结构体对齐问题

有意浪费部分内存空间,以提高程序执行效率。

规则:1、结构体按照其最长成员大小对齐,意味着最终的大小必须是最长成员大小的整数倍;
        2、结构体成员按照结构体成员声明先后次序依次存放,并且每个成员的字节置的位置必须能够整除成员的字节数
        3、如果结构体某个成员的字节数大于CPU的字节数,则最长按CPU的字节数对齐
        4、用预处理命令#pragma pack(n) 可以强制编译器按照指定的n来对齐,合法的n的数值分别是1、2、4、8、16。

4、结构体作为函数参数传递

通常用指针传参。左边为指针时一般用指向结构体成员运算符" -> "。

结构体数组作为函数参数传递。

数据结构 + 算法 = 程序;输出缓存区:(1)\n      (2)fflush(stdout)函数      (3)缓冲区满了。

二、链表

1、链表由若干节点组成。节点包括值域、指针域。链表是在堆区,不连续。

优:删除、插入时算法复杂度为1。

劣:知道首元素地址,只能通过指针域逐个往后推找第i个元素。

有头链表:黄色部分首节点在栈区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值