对数据结构、存储结构、C语言的指针,函数、结构体等知识点的讲解
1、存储结构
|
|
2、指针
|
|
3、结构体
|
|
3.1访问结构体
|
|
4、IO
IO:input output
文件IO:采用的方式是系统调用
对文件进行读写的功能由内核完成。
操作方式:先打开(open),后读(read)写(write)
5、函数
a、函数原型:
|
|
功能:打开一个文件或设备
参数:一、pathname:路径名(文件名)
二、flags :当前进程对该文件的操作权限
需要有下面的其中的一个(1-6)
1.O_RDONLY 只读方式打开
2.O_WRONLY 只写方式
3.O_RDWR 读写方式
The file is opened in append mode.
4、O_APPEND 以追加的方式打开数据
5、O_CREAT 文件不存在,会自动创建一个
6、O_TRUNC 如果文件有数据,就会清空文件
(1)O_RDONLY 只读方式打开,文件必须存在,否则就会出错
(2)O_RDWR读写方式,文件必须存在,否则就会出错
(3)O_WRONLY|O_CREAT|O_TRUNC 以只写的方式打开文件,如果文件不存在,会自动创建,如果文件已存在,有数据。则清空原有的数据
(4) O_RDWR|O_CREAT|O_TRUNC 以读写的方式打开文件,如果文件不存在,会自动创建,如果文件已存在,有数据。则清空原有的数据
(5)O_WRONLY|O_CREAT|O_APPEND 以只写的方式打开文件,如果文件不存在,会自动创建,如果文件已存在,以追加的方式进行访问
(6)O_RDWR|O_CREAT|O_APPEND 以读写的方式打开文件,如果文件不存在,会自动创建,如果文件已存在,以追加的方式进行访问
mode
当flags指定O_CREAT,必须有第三个参数;
mode:该文件所属用户对该文件的执行权限:如rwxrwxr-x:0775
【返回值】RETURN VALUE
open() and creat() return the new file descriptor, or -1
if an error occurred (in which case, errno is set appro‐
priately).即:返回值:成功 文件描述符(非负数)
失败 -1
mode与umask(权限掩码,屏蔽权限值)à(化为二进制取反相与)取反
当打开文件,文件的描述符是从3开始,0,1,2是系统默认的
0:标准输入
1:标准输出
2:标准出错输出
b、函数原型
|
|
功能:期望读取count个字节数据
参数:fd文件描述符
Buf 保存读取的数据
Size_t 读取的个数
返回值;成功 实际读取的个数
失败 返回-1
6、数据结构
1)概念:数据结构体数组研究的是数据和数据之间的关系。
2)数据(data): 数据即信息的载体,是能够输入到计算机中并且能被计算机识别、存储和处理的符号总称。数据就是研究对象。
3)数据元素(data element): 数据元素是数据的基本单位,又称之为记录(Record)。
4)数据项:数据项是数据元素的最小单位。
5)数据类型(data type): 数据类型是对数据元素取值范围与运算的限定。
6)数据结构指的是数据的逻辑结构和存储结构及其操作
a、逻辑结构:表示数据运算之间的抽象关系(如邻接关系、从属关系等),按每个元素可能具有的直接前趋数和直接后继数将逻辑结构分为“线性结构”和“非线性结构”两大类
线性结构——一个对一个,如线性表、栈、队列
树形结构——一个对多个,如树
图状结构——多个对多个,如图
b、存储结构:逻辑结构在计算机中的具体实现方法,分为顺序存储方法、链接存储方法、索引存储方法、散列存储方法。
c、顺序存储:数据在内存当中存储时,需要开辟一块连续的空间,使用数组,为了方便操作,定义数组下标来标识数组现有元素的个数。
d、链式存储:不需要开辟一块连续的空间,所以每一个数据不再是单纯的数据,而是一个结点,由两部分组成,数据域和指针域,指针域里面存储下一个结点的地址。
操作:增、删、改、查
1、单链表(线性表的链式存储)的实现
1)头文件:
|
|
2)定义数据类型:
|
|
3)定义结点结构体
|
|
4)创建一个空链表:
|
|
执行原理图:
5)插入数据
|
|
6)打印数据
|
|
7)main函数中调用上面的函数
|
|
执行结构为: