C语言
文章平均质量分 59
小白都能看懂的C语言学习笔记
满山的猴子我的腚最红
这个作者很懒,什么都没留下…
展开
-
scanf、printf、string函数族
【代码】scanf、printf、string函数族。原创 2024-05-15 17:02:49 · 375 阅读 · 0 评论 -
非阻塞模式下的读写操作
实现文件IO的非阻塞模式的读写操作。设置为非阻塞模式后,读写不会阻塞,实现标准IO的非阻塞模式的读写操作。原创 2024-05-15 16:56:56 · 262 阅读 · 0 评论 -
TCP编程及基础知识
3.绑定套接字(bind())------------------------------>绑定手机。1.创建流式套接字(socket())------------------------> 有手机。4.监听套接字(listen())---------------------------->待机。7.关闭套接字(close())----------------------------->挂机。5.关闭套接字(close())--------------------------- >挂机。原创 2023-11-13 20:24:52 · 390 阅读 · 0 评论 -
linux下IO模及其特点及select
ftp实现模拟核心原理:客户端连接服务器后,向服务器发送一个文件。文件名可以通过参数指定,服务器端接收客户端传来的文件(文件名随意),如果文件不存在自动创建文件,如果文件存在,那么清空文件然后写入。功能要求:1.项目基于tcp连接进行编写2.客户端命令行传参,传入ip、port、文件路径,实现把指定目录下的文件发送到服务器3.服务器接收并放到指定文件路径linux下IO模及其特点场景假设假设妈妈有一个孩子,孩子在房间里睡觉,妈妈需要及时获知孩子是否醒了,如何做?1.原创 2023-11-08 19:21:48 · 180 阅读 · 0 评论 -
网络编程基础知识
在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。局域网的缩写是LAN,local area network,顾名思义,是个本地的网络,只能实现小范围短距离的网络通信。所以为了数据安全,不能连接因特网,需要用一条自己的专用线路来传输数据,这条线路上只有自己人,不会有其他人接入,且距离很远,这个网络就叫 “广域网”。原创 2023-11-02 18:46:51 · 158 阅读 · 0 评论 -
IO进程及相关函数
进程创建后,进程进入就绪态,当CPU调度到此进程时进入运行态,当时间片用完时,此进程会进入就绪态,如果此进程正在执行一些IO操作(阻塞操作)会进入阻塞态,完成IO操作(阻塞结束)后又可进入就绪态,等待CPU的调度,当进程运行结束即进入结束态。CPU调度进程时会给进程分配时间片(几毫秒~十几毫秒),当时间片用完后,cpu再进行其他进程的调度,实现进程的轮转,从而实现多任务的操作。系统会为每一个进程分配0-4g的虚拟空间,0-3g(用户空间)是每个进程所独有的,3g-4g(内核空间)是所有进程共有的。原创 2023-10-27 18:36:50 · 80 阅读 · 0 评论 -
IO,库-10.24.25
gcc编译四步:预处理(展开头文件,替换宏定义,删除注释)、编译(检查错误,生成汇编文件)、汇编(生成二进制文件)、链接(生成可执行文件)注意:更新静态库,所有的可执行文件需要重新编译,更新动态库,所有的可执行文件不需要重新进行编译,直接执行。由于windows和linux的本质不同,因此二者库的二进制是不兼容的分为:动态库和静态库。1)静态库:静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态。静态库的命名规则:lib是库的前缀,xxx库名, .a后缀(扩展名)原创 2023-10-26 18:32:54 · 74 阅读 · 0 评论 -
一个C语言的基础小项目:学生管理
【代码】一个C语言的基础小项目:学生管理。原创 2023-10-23 09:17:50 · 31 阅读 · 0 评论 -
IO入门day1
a+:初始读指针在文件开始位置,写指针在文件结束位置,如果只调用读指针,那么读指针从刚开始位置后移,一旦调用写指针,读写指针合二为一,读指针去到写指针的位置。文件内部有文件指针,文件用文件指针操作,流只是起到了一个媒介的作用,封装原来的接口等,开辟缓冲区,减少系统调用。3)标准IO默认打开了三个流,stdin(标准输入)、stdout(标准输出)、stderr(标准错误)标准I/O库的所有操作都是围绕流(stream)来进行的,在标准I/O中,流用FILE *来描述。(一个文件是可以被重复打开)1。原创 2023-10-20 18:36:01 · 62 阅读 · 0 评论 -
文件IO操作
文件IO默认打开了三个文件描述符,分别是 0(标准输入),1(标准输出),2(标准错误)系统自动降低文件权限:mode&(~umask) (不同系统:umask大小不同)操作任意类型的文件b c - l s p 不能操作d。进行操作,非负整数 (>=0),依次分配。没有缓冲机制,每次调用都会引起系统调用。不同进程打开相同文件,文件指针各不相同。读写操作 read write。在系统(posix)关闭文件 close。定位操作 lseek。原创 2023-09-18 12:34:16 · 80 阅读 · 0 评论 -
标准IO函数
标准IO函数标准IO函数查看错误码 vi -t EEXIST打开文件:fopen freopen1)fopen 打开文件a+:初始读指针在文件开始位置,写指针在文件结束位置,如果只调用读指针,那么读指针从刚开始位置后移,一旦调用写指针,读写指针合二为一,读指针去到写指针的位置2)freopen关闭文件:fclose。原创 2023-09-17 23:37:13 · 92 阅读 · 0 评论 -
标准IO概念及特点
文件内部有文件指针,文件用文件指针操作,流只是起到了一个媒介的作用,封装原来的接口等,开辟缓冲区,减少系统调用。3)标准IO默认打开了三个流,stdin(标准输入)、stdout(标准输出)、stderr(标准错误)索引使用:1.vi -t要查找的内容 (查找宏,数据类型等)FILE是数据类型(结构体),FILE*结构体指针。scanf--》标准输入缓冲区---》终端输入。printf--》标准输出缓冲区---》终端。‘b’:块设备文件(sd卡 硬盘等)qq。3)不缓冲:没有缓冲区,标准错误。原创 2023-09-16 13:06:07 · 101 阅读 · 0 评论 -
树型结构 二叉树
若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。二叉树(Binary Tree)是n(n≥0)个节点的有限集合,它或者是空集(n=0), 或者是由一个根节点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成。给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;原创 2023-09-15 09:04:31 · 108 阅读 · 0 评论 -
双向链表doubleLinklist
将新节点的 prior 指针指向直接前驱节点。将直接前驱节点的 next 指针指向新节点。1)创建一个空的双向链表。存储结构:链式存储结构。4)删除确定位置数据。原创 2023-09-14 08:49:05 · 118 阅读 · 0 评论 -
数据结构-链式队列操作
概念逻辑结构:线性结构存储结构:链式存储操作:创建、入列、出列、判空、清空原创 2023-09-13 08:24:48 · 91 阅读 · 0 评论 -
队列及顺序列
答:rear 后面 队尾,在插入的时候,插入之前需要先判断 rear+1,也就是他的下一个为位置是否 等于 front 来判断队列是否为满,会造成浪费一个存储位置。注意:为了避免假溢出问题,即队列前面还有空闲,但是队尾已经出现越界,所以在实际使用队列时,为了使队列空间能重复使用,往往对队列的使用方法稍加改进,需要引入。队列是只允许在两端进行插入和删除操作的线性表,在队尾插入,在队头删除,插入的一端被称为“队尾”,删除的一端被称为“队头”。队列包括顺序队列(循环队列)、链式队列。结构:先进先出FIFO。原创 2023-09-12 12:45:57 · 91 阅读 · 0 评论 -
链式栈操作
存储结构不同,顺序栈是顺序存储,空间连续,用数组构建,也就是用顺序表构建栈。链式栈,链式存储,空间不连续,需要通过指针连接,也就是用链表构建。顺序栈用顺序表实现,链式栈用链表实现。顺序栈的长度受限制,而链式栈不会。操作:创建、入栈、出栈、清空。1)创建一个新的链式栈。7)判断栈有效数据长度。顺序栈和链式栈的区别?2.2 代码操作实现。原创 2023-09-11 08:40:03 · 143 阅读 · 0 评论 -
栈概念及 顺序栈操作
二顺序栈一、概念栈是线性表的一种,但是只能在一端进行插入和删除操作,操作的那一端称为栈顶,另一端称为栈底。如图:特点:先进后出FILO(first in last out)逻辑结构:线性结构储存结构:顺序存储、链式存储二。原创 2023-09-10 12:21:13 · 123 阅读 · 0 评论 -
链表Linklist操作
单向循环链表:约瑟夫环问题,是一个经典的循环链表问题,题意是:已知 n 个人(分别用编号 1,2,3,…顺序表在内存当中连续存储的(数组),但是链表在内存当中是不连续存储的,通过指针将数据链接在一起。删除单向链表中出现的指定数据,data代表将单向链表中出现的所有data数据删除。顺序表查找方便,但是插入和删除效率低,链表,插入和删除方便,查找效率低。思想:用头指针移动到要杀的猴子的前一个,然后跨过指向猴子的节点。删除单向链表中指定位置的数据 post 代表的是删除的位置。合并,形成一个递增有序的新链表。原创 2023-09-09 09:04:33 · 208 阅读 · 0 评论 -
链表Linklist
写一个有头单项链表,用于保存输入的学生成绩,实现一输入学生成绩就创建一个新的节点,将成绩保存起来。再将该节点链接到链表的尾,直到输入-1结束。有头链表:存在一个头节点,(只作为链表开头,不存放数据)数据域无效,指针域有效。要求:每个链表的节点由动态内存分配得到 , 也就是用malloc。解决顺序表中的问题:长度固定和插入删除的麻烦。要把链表的节点连接起来就需要通过指针来操作。无头链表:每一个节点的数据域和指针域都有效。特点:内存中不连续,通过指针链接。存储结构:链式存储结构。将新节点放到链表尾部。原创 2023-09-08 08:13:53 · 153 阅读 · 0 评论 -
顺序表SeqList
顺序表存储数据的具体实现方案是:将数据全部存储到一整块内存空间中,数据元素之间按照次序挨个存放。下划线法:create_empty_seqlist。小驼峰法:createEmptySeqList。大驼峰法:CreateEmptySeqList。放操作顺序表函数文件seqlist.c。查找和修改效率高,删除和插入效率低。插入元素不会增加空间,导致元素丢失。数组操作优化:通过添加全局变量。特点:内存连续,大小是固定的。放主函数的文件main.c。头文件seqlist.h。删除元素不会减少遍历。原创 2023-09-07 08:57:04 · 120 阅读 · 0 评论