一.IO
标准IO和文件IO
一.标准IO
1.标准IO:
1.标准IO是由库函数系统提供的,由ANSI C标准定义
2.是带缓冲区的操作,运行效率较高
3.支持跨平台的
4.标准IO操作的依据一般是流指针
2.库函数
库函数和系统调用的区别
1.系统调用是由系统提供,库函数是系统调用的二次封装
2.系统调用是內核,库函数是用户空间
3.系统调用是机器时间,库函数用的是用户时间
4.系统调用不可以重写,库函数可以重写
5.系统调用用于基础的操作,库函数用于复杂的操作
6.系统调用运行效率低,库函数运行效率高
7.系统调用可移植性低,库函数可移植性高
8.系统调用返回值是非负整数,库函数的返回值不一定
3.流指针和文件描述符
文件描述符是一个非负整数,实际本质是数组下标
文件流指针:文件流指针其实就是对文件描述符的封装,它的内部也是使用文件描述符来操作文件的
4.标准IO的一些操作
1.打开文件
fopen (打开) (参数1.需要打开文件的路径,2.需要打开的方式)
fclos(关闭) (要关闭的文件)
2.操作文件
(1)以字符读写
fgetc (读) (参数:需要读的文件流)
fputc (写) (参数1:被写的字符 参数2:写给谁:文件流)
(2)以行读写
fgets (读) (读到哪里 读多少 读给:文件流)
fputs (写) (从哪里写 写给谁:文件流)
(3) 以对象读写
fread (读) (读到哪 一次读多少 一共读多少 从哪读 )
fwrite (写) (从哪写 一次写多少 一共多少 写给谁)
(4)以格式化读写
fscanf (读) (从指定的流读,读给谁)
fprintf (写) (从哪写,写给指定的流)
(5)fflsh (强制刷新指定的流)
(6)time(返回一个从计算机元年到现在的日期)
(7)fseek (光标移动)
(8)ftell(获取光标的位置)
(9)fileno(获取指定文件流里的文件描述符)
二.文件IO
(1) open 打开 (需要打开的文件路径 打开的方式 )
操作问文件
read 读 (从哪读 读到哪 读多少)
write 写(往哪写 从哪写 写多少)
opendir 打开目录 ( 需要被打开的目录)
readdir 读目录 (需要读的目录)
stat 获取文件的所有信息
三.动态库和静态库
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,因此代码体积较小。
制作静态库:
制作动态库:
二.数据结构
一.线性结构
1.顺序表的操作
(1)头插
(2)尾插
(3)头删
(4)尾删
(5)销毁
(6)扩容
2.链表的操作
(1.)头插
(2)尾插
(3)头删
(4)尾删
3.栈
(1)入栈
(2)出栈
4.队列
(1)入队
(2)出队
(3)循环队列
二.树形结构
(1)二叉树
(2)数的结点遍历
先序,中序,后序
(3)广度优先
层次遍历
三.网状结构
分 类:
按有无 方 向 可 以 分 为:有 向 图 、 无 向 图
按 是 否 带 权 值:带 权 图 和 不 带 权 图
四.算法
1.算法的特征:
1.有 穷 性:算 法 必 须 在 有 限 个 语 句 能 描 述 完
2.确 定 性 ( 无 二 义 性 ):每 一 条 语 句 只 能 有 一 个 解 释
3.可 行 性:能 运 行 的
2.查找算法:
1.顺序查找
2.折半查找
3.哈希函数
3.排序算法
1.冒泡排序
2.简单选择
3.直接插入
4.折半插入
5.希尔排序
6.快速排序