摘要:
链表的概述 链表是由一个一个的节点组成,节点没有名字,每个节点从堆区空间动态申请,节点间是非连续的(物理上),但是每个节点通过指针域保存下一个节点的位置,达到逻辑上的连续 数组和链表的区别 静态数组:必须事先确认数组元素的个数(过多浪费,过小溢出),插入删除数据效率低(需要移动大量数据),遍历元素效 阅读全文
摘要:
rewind:复位文件指针流 void rewind(FILE *stream) ftell:返回文件流指针距离文件首部的字节数 long ftell(FILE *stream) fseek:文件流指针定位 int fseek(FILE *stream, long offset, int whenc 阅读全文
摘要:
文件的操作步骤:打开,读写,关闭 fopen:打开文件 FILE *fopen(const char *path, const char *mode) path:文件的路径 mode:打开文件的方式 返回值 成功:返回打开文件的指针 失败:NULL 文件的打开方式(mode) r:只读的方式打开 w 阅读全文
摘要:
所有操作文件的库函数,都需要借助文件指针操作文件 每一个进程默认打开的3个文件指针 stdin:标准输入,默认为当前终端(键盘),我们使用的scanf、getchar函数默认从此终端获得数据 stdout:标准输出,默认为当前终端(屏幕),我们使用的printf、puts函数默认输出信息到此终端 s 阅读全文
摘要:
文件分类(存储介质) 磁盘文件:文件的数据存放在磁盘上(音视频、图片文件、文档文件) 设备文件:通过系统将外部设备抽象成文件 文件分类(存储方式) 任何磁盘文件在物理上都是二进制存储 逻辑上,磁盘文件分为二进制文件和文本文件 文本文件:基于字符编码的文件 二进制文件:基于值编码的文件 文本文件 基于 阅读全文
摘要:
枚举 将枚举变量要赋的值一一列举出来。例如 enum COLOR{RED, BLACK, GREEN, BLUE, YELLOW}; 修改枚举值 阅读全文
摘要:
共用体 所有成员共享同一块空间。例如: 成员a、b、c共享同一块空间,空间大小由最大的成员空间决定 成员a、b、c共享同一块空间,但是每个成员能操作的空间范围是由成员自身类型长度决定 阅读全文
摘要:
结构体的位域 在结构体中,以位为单位的成员,称为位域 上图中,a的类型是 unsigned int,a的大小只占2位二进制位 没有被 非位域 隔开的位域,叫相邻位域 相邻位域可以压缩,但是压缩的位数不能超过自身类型的大小 不要对位域取地址 对位域赋值不要超过位域本身位的宽度 另起一个存储单元 无意义 阅读全文
摘要:
结构体的对齐规则 自动对齐规则 1、确定分配单位(一行分配多少个字节) 结构体中最大的基本类型长度决定 2、确定成员的偏移量 成员的偏移量 = 成员自身类型的整数倍 3、收尾 结构体的总大小 = 分配单位的整数倍 结构体嵌套结构体自动对齐规则 1、确定确定分配单位(一行分配多少个字节) 所有结构体中 阅读全文
摘要:
结构体在堆区,结构体的指针成员指向堆区 结构体指针数组在堆区,结构体在堆区,结构体指针成员在堆区 阅读全文