
C语言学习
文章平均质量分 83
kennan_pro
这个作者很懒,什么都没留下…
展开
-
C++基本概念、与c语言的区别,结构体、联合、枚举的区别,函数的区别、内存管理的区别
引用是一种取名机制,它可以给变量重新取一新的名字,所以引用也叫别名。原创 2022-10-18 18:46:28 · 508 阅读 · 0 评论 -
系统调用、文件描述符、文件的创建与打开、文件读写、系统IO和标准IO、文件位置指针相关
由操作系统向应用程序提供的程序接口信息,也叫应用编程接口(Application Programming Interface,API),它是是应用程序与操作系统之间交互的接口。 操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,使应用程序具有更好的兼容性,为了达到这个目的,内核提供了一系列具备了一定功能的内核函数,通过一组称为系统调用(system call)的接口呈现给用户。原创 2022-09-05 19:25:58 · 574 阅读 · 0 评论 -
内存管理的层次关系、进程映像、虚拟内存、内存映射、Linux系统内存管理API
大小,只有操作系统才能使用,里面存储着操作系统为该进程服务或者与该进程交互所需要的相关数据,内核空间由操作系统内核进行管理,不会随进程切换而改变。接分配给进程,这样就会面临严重的安全问题,进程可以根据自己获取到的内存地址,对指针进行运算。就是操作系统给进程画的饼,当进程真的需要使用内存来存储数据时,操作系统会把一部分的虚拟内存。行的程序叫进程,一个程序可以同时被执行多次,形成多个进程,每个进程互相独立,由操作系统管。共享映射,映射的内容对其它进程是可见的,对共享区的写入,相当于输出到文件。原创 2022-09-03 15:28:11 · 1100 阅读 · 0 评论 -
UNIX系统和Linux系统介绍,GNU编译工具的使用,静态库和动态库的制作和使用以及优缺点
系统环境:库、环境变量、编译器、系统特性内存管理:操作系统是如何管理内存的文件系统:文件读写、目录读写、文件属性、文件管理进程管理:多个程序同时运行,解决复杂问题信号处理:操作系统与程序之间一种通信机制进程通信:多个进程如何交互数据,这是它们协同工作的基础线程管理:就是让一个程序同时做若干件事情线程同步:让多个线程同时工作时能够不互相破坏、干扰。原创 2022-09-02 19:00:31 · 291 阅读 · 0 评论 -
查找算法:顺序查找、二分查找、索引查找、分块查找、哈希表查找的c语言代码实现以及优缺点
在一个数据序列中,查找某个数据是否存在或存在的位置,在实际开发过程中使用的频率非常高,例如对数据常见的操作有增、删、改、查,增加数据时需要查询新增加的数据是否重复,删除数据时需要先查询到数据所在位置再删除,修改数据时也需要先查询到被修改的数据在什么位置,查找算法在编程中重要性排列在第一位。原创 2022-08-23 18:31:26 · 2381 阅读 · 1 评论 -
什么是算法以及算法的重要特性和设计的要求,常见的时间复杂度和空间复杂度
对特定问题的求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。原创 2022-08-23 18:25:26 · 536 阅读 · 0 评论 -
赫夫曼树介绍、赫夫曼树的性质、赫夫曼编码、赫夫曼树与赫夫曼编码的应用
赫夫曼树是一种带权重的树,它的结点中有一项数据是权重信息,根据结点中的权重生成一棵二叉树,结点的权生越大,离根结点就越近。原创 2022-08-16 20:40:27 · 407 阅读 · 1 评论 -
线索二叉树的介绍、创建和添加线索的方法,堆树的介绍、存储和创建以及实现方法
我们在遍历二叉树时会得到一个线性的序列结果,但遍历的过程是非线性的(函数递归),该过程比较耗时,我们可以借助结点中的空的指针,增加一些线索,使用二叉树能够使用循环语句进行遍历,提高二叉树遍历的速度。 大根堆:根结点的值比它的左右子树都要大,同时它的左右子树也遵循这项规则,也就是说一棵树的根结点中存储的是这棵树中的最大值,这种完全二叉树叫大根堆。 小根堆:根结点的值比它的左右子树都要小,同时它的左右子树也遵循这项规则,也就是说一棵树的根结点中存储的是这棵树中的最小值,这种完全二叉树叫小根堆。...原创 2022-08-15 19:18:56 · 310 阅读 · 0 评论 -
树的介绍、树的定义和基本术语、二叉树的定义和性质、二叉树的顺序表示与实现和链式表示与实现以及树的遍历方法以及两种创建方式
树是一种非线性的数据结构,是以分支关系定义的层次结构,比如人类社会中的族谱、及各种机制、组织的关系都可以用树形象的表示。重点学习二叉树的存储和相关操作,还要讨论树、森林、二叉树的转换关系。**树:**是n个结点的有限集,当0==n时称为空树,我们不讨论空树。**根结点:**树的最顶层的结点,一棵树有且仅有一个。**子树:**一棵树除根结点外,剩余的是若干个互不相交的有限集,每一个集合本身又是棵树,称称为根的子树。......原创 2022-08-09 19:50:49 · 414 阅读 · 0 评论 -
串的介绍以及基本的功能与算法实现,封装成字符串的意义以及子串查询的算法
串型结构就是由若干个类型相同的元素组成的数据结构,末尾有一个结束标志,字符串就是由字符元素组成的串型结构,'\0’是它的结束标志,使用它可以存储单词、文章、汉字等文字信息。 随着计算机和编程语言的发展,字符串在程序中使用的越来越多,字符串就简称串,对它的操作都是对串里面所有字符整体操作,以’\0’为结束标志,如果字符串的末尾没有’\0’,可能会产生乱码、段错误、脏数据等问题。...原创 2022-08-08 18:58:56 · 137 阅读 · 0 评论 -
栈与队列的基本介绍和创建、销毁、出入、计算元素数量、查看元素等功能的c语言实现,以及栈的压入、弹出序列判断,栈结构的链式表示与实现
栈和队列是两种重要的线性结构,从数据结构来看,他们也是线性表,其特殊性在于它们的基本操作是线性表的子集,也就中,也被称为限定性的数据结构。但从数据类型角度来看,它们是和线性表不大相同,有些时候它们被当作一种管理数据的规则。...原创 2022-08-04 20:58:12 · 652 阅读 · 0 评论 -
简单的线性表的顺序表示实现,以及线性表的链式表示和实现、带头节点的单向链表,C语言简单实现一些基本功能
线性表是n个数据元素的有限序列,同一线性表中的元素必定具有相同特性,相阾的数据元素之间存在着序偶关系。线性表中元素的个数n(n>=0)定义为线性表的长度,0==n时称为空表,在非空表中每个数据元素都有一个确定的位置(下标)。线性表是一个相当灵活的数据结构,它的长度可根据需要增长或缩短。......原创 2022-08-02 19:21:19 · 348 阅读 · 0 评论 -
makefile以及通用的makefile脚本、C语言文件操作以及加密相关,开源项目学习方法,main的参数
Makefile脚本集合了程序的编译指令的文件,make是一个命令工具,当执行make命令时,它会自动读取MakeFile中的编译指令并执行,会自动完成整个项目的自动化编译工作。项目中如果有很多.c文件,他们的编译指令会有很多,需要的编译时间比较长,依赖关系非常复杂。当项目中的.h文件被修改时,.c文件,我们无法人为分辨出哪些文件需要重新编译,只能全部重新编译一下,但这项操作非常耗时。所以使用makefile脚本编译项目(按重要性排序)1、节约时间2、记录文件之间的依赖关系。............原创 2022-07-19 20:12:18 · 1257 阅读 · 0 评论 -
条件编译、版本环境判断、宏、头文件、以及多文件编译相关
专门用于调试程序的宏函数,这种宏函数在程序测试、调试、试运行阶段执行,在程序正式上限阶段不执行。一些操作提示,如xxx操作成功,xxx操作失败,xxx不存在,分配内存的记录、释放内存的记录,这类型消息开发人员、测试人员需要看到,但用户不需要看到{}#elsefree(ptr);\\}while(0)#else%sfunc%sline%d\32m");\\\}while(0)#else。...原创 2022-07-18 20:32:04 · 796 阅读 · 0 评论 -
成员指针、柔性数组、联合、大小端系统的优缺点以及使用
当结构的某一项成员数量不固定,我可以在结构的末尾定义一个长度为零的数组,这种数组就叫柔性数组,在为结构变量分配内存时多分配一些,多分配的内存就归柔性数组使用。注意不管结构变量如果定义的,必须给成员指针单独分配堆内存,否则成员指针就是野指针,在结构变量使用完毕后还必须单独释放,否则就会产生内存泄漏。3、柔性数组所使用内存块与结构变量是一体的,与结构变量的内存一起分配一起释放,因此也不容易产生内存泄漏、内存碎片。联合的使用语法与结构一模一样,联合与结构的区别,联合的所有成员共用一块内存。......原创 2022-07-14 19:28:15 · 238 阅读 · 1 评论 -
ubuntu系统下简单的用户管理系统的实现,以及字符输入相关问题
今天写了一个简单的用户管理系统,系统非常简单,但是还是写下来记录一下,之后有机会再改进一下当然在这个过程中还是遇到了问题1、在开始编写和测试这两个函数出现了一些问题在测试的时候程序直接跳过了输入用户名的get_str,到了确认密码的阶段。这个是因为在获取进入注册函数的命令的时候使用了scanf影响了后续的输入这里涉及到了字符输入相关的知识,记录在下面字符的输入方法1方法2注意如果先输入数值型数据后输入字符型数据,输入数值型数据时会残留一个‘’或者‘\n’.影响后续字符的输入。...原创 2022-07-14 19:05:38 · 413 阅读 · 1 评论