自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 linux文件io

linux文件系统的头文件:struct file这个结构体是在文件被操作时会创建的。struct file_operations这个结构体中的成员几乎都是函数指针,用于做统一化管理。

2024-09-11 16:54:23 725

原创 工程管理-Makefile

Linux的 make 程序用来自动化编译大型源码,很多时候,我们在Linux下编译安装软件,只需要 敲一个 make 就可以全自动完成,非常方便。make 能自动化完成这些工作,是因为项目提供了一个 Makefile 文件,它负责告诉 make ,应该 如何编译和链接程序。

2024-09-05 15:55:28 1277

原创 数据结构代码分享

【代码】数据结构代码分享。

2024-08-30 20:34:46 928

原创 第4章 二叉树和BST

树是一种非线性结构,其严格的数学定义是:如果一组数据中除了第一个节点(第一个节点称为根节 点,没有直接前驱节点)之外,其余任意节点有且仅有一个直接前驱,有零个或多个直接后继,这样 的一组数据形成一棵树。这种特性简称为一对多的逻辑关系。即用于描述具有层次关系,类似组织架 构关系的一种数据结构。树的组成:根,分支,叶子。

2024-08-29 19:52:28 797

原创 第3章 栈和队列

栈是一种逻辑结构,是特殊的线性表。特殊在:只能在固定的一端操作只要满足上述条件,那么这种特殊的线性表就会呈现一种“后进先出”的逻辑,这种逻辑就被称为栈。栈 在生活中到处可见,比如堆叠的盘子、电梯中的人们、嵌套函数的参数等等。由于约定了只能在线性表固定的一端进行操作,于是给栈这种特殊的线性表的“插入”、“删除”,另起了 下面这些特定的名称:栈顶:可以进行插入删除的一端栈底:栈顶的对端入栈:将节点插入栈顶之上,也称为压栈,函数名通常为push()

2024-08-29 09:09:35 1304

原创 第2章 双向链表

对链表而言,双向均可遍历是最方便的,另外首尾相连循环遍历也可大大增加链表操作的便捷性。因 此,双向循环链表,是在实际运用中是最常见的链表形态。

2024-08-27 20:14:51 809

原创 第1章 顺序表和单链表

顺序存储中,由于逻辑关系是用物理位置来表达的,因此从上述示例代码可以很清楚看到,增删数据 都非常困难,需要成片地移动数据。顺序表对数据节点的增删操作是很不友好的。总结其特点如下:优点1. 不需要多余的信息来记录数据间的关系,存储密度高2. 所有数据顺序存储在一片连续的内存中,支持立即访问任意一个随机数据,比如上述顺序表中第 个节点是 s->data[i]缺点1. 插入、删除时需要保持数据的物理位置反映其逻辑关系,一般需要成片移动数据2. 当数据节点数量较多时,需要一整片较大的连续内存空间。

2024-08-26 19:34:39 1261

原创 第22天笔记

预处理就是在源文件(如.c文件)编译之前,所进行的一部分预备操作,这部分操作是由预处理 程序自动来完成;当源文件在编译时,编译器会自动调用预处理程序来完成对预处理指令的解析,预 处理指令解析完成才能进入下一步的编译过程。gcc 源文件 -E -o 程序名[.后缀]不带参数的宏定义#define 宏名 常量数据预处理:此时的预处理只做数据替换,不做类型检查注意:我们定义的宏是不会占用内存空间,还没有到编译环节,就已经被替换成了我们宏中的 常量数据。

2024-08-20 15:31:31 506

原创 第20~21天笔记

什么是 文件文件时保存在外存储器上(一般代指磁盘,也可以是U盘、移动硬盘等)的数据的集合。文件操作体现在哪几个方面1. 文件内容的读取2. 文件内容的写入数据的读取和写入可被视为针对文件进行输入和输出的操作,此时数据就像水流一样从外存 储器流向内存,或者从内存流向外存储器,所以系统形象的称文件操作为文件流。C语言程序对文件的操作采用“文件缓冲机制”。就是说在程序中对文件的数据读写并不是直接 操作文件中的数据,而是系统会为文件在内存中创建“文件缓冲区”,程序对文件的操作,其实是在 缓冲区进行的。

2024-08-19 20:29:40 957

原创 c作业整合(分支、循环、数组、函数)

double a=1;a>1e-5;i++)n+=a;printf("n为%lf\n",n);return 0;

2024-08-17 20:15:55 1102

原创 C语言第20天笔记

就是说在程序中对文件的数据读写并不是直接 操作文件中的数据,而是系统会为文件在内存中创建“文件缓冲区”,程序对文件的操作,其实是在 缓冲区进行的。数据的读取和写入可被视为针对文件进行输入和输出的操作,此时数据就像水流一样从外存 储器流向内存,或者从内存流向外存储器,所以系统形象的称文件操作为文件流。2. C语言程序中:文件指针(文件类型指针),语法: FILE *指针变量名。3. 关闭文件 文件的操作 打开文件,让系统为文件创建文件缓冲区;失败:返回NULL 文件关闭,文件使用完毕,一定要记得释放。

2024-08-16 20:34:02 1387

原创 c语言第18天笔记

案例:需求:对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出 各人得票结果。结构体指针定义:结构体类型的指针变量指向结构体变量或者数组的起始地址。语法:struct 结构体名 *指针变量列表;结构体成员访问结构体成员访问结构体数组名访问结构体成员格式:结构体数组名 -> 成员名;结构体成员访问符. :左侧是结构体变量(结构体对象/实例),也可以叫做结构体对象访问成员符;右侧是结 构体成员。-> :左侧是一个指针,可也以叫结构体指针访问成员符;

2024-08-15 19:28:47 1311

原创 c语言第17天笔记

我们对于内存的操作借助于 string.h 这个库提供的内存操作函数。内存填充头文件: #include函数原型: void *memset(void *s,int c,size_t n);函数功能:填充s开始的堆内存空间前n个字节,使得每个字节值为c。函数参数:void *s:待操作内存首地址。int c:填充的字节数据。size_t n:填充的字节数。返回值:返回s注意:c常常设置为0,用于动态内存初始化内存拷贝头文件: #include。

2024-08-14 18:32:19 882

原创 c语言第16天笔记

概念:数组指针是指向数组的指针。特点:先有数组,后有指针 它指向的是一个完整的数组。一维数组指针:二维数组指针指针和数组中符号优先级: () > [] > *

2024-08-13 18:43:53 1097

原创 c语言第15天

概念:数组指针是指向数组的指针。特点:先有数组,后有指针 它指向的是一个完整的数组。一维数组指针:语法:案例:二维数组指针语法:案例:指针和数组中符号优先级: () > [] > *概念:指针数组是一个数组,数组中的每个元素都是一个指针。特点先有“指针”,后有“数组” 指针数组的本质是一个数组,只是数组中的元素类型为指针。语法:案例:建议:我们一般使用指针数组处理字符串在C语言中,表示一个字符串有以下两种形式:1. 用字符数组存放一个字符串2. 用字符指针指向一个字符串案

2024-08-12 19:37:32 1374

原创 c语言第14天笔记

值传递:一般发生在函数形参的类型为char、short、int、long、float、double这样的类型,它的传 递,一般是实参将自己的值复制一份给形参,也就是实参变量和形参变量的变量空间是分开的。引用传递:一般发生在函数形参的类型为数组、指针这样的类型,它的传递,一般是实参将自己的 内存首地址复制一份给形参,也就是实参变量和形参变量对应内存空间是同一个。注意:虽然我们定义了一个指针变量接收了数组地址,但不能理解为指针变量指向了数组,而应该理 解为指向了数组的元素。数组指针:指向一维数组的指针变量。

2024-08-09 17:42:46 273

原创 C语言作业难题

计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) =?printf("公鸡=%d只,母鸡=%d只,小鸡=%d只\n",rooster,hen,chicken);计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n=?printf("'%s' 和 '%s' 相同\n",str1,str2);printf("'%s' 小于 '%s'\n",str1,str2);printf("'%s' 大于 '%s'\n",str1,str2);

2024-08-08 20:43:26 979

原创 c语言第12天

内存地址:系统为了内存管理的方便,将内存划分为一个个的内存单元(1个内存单元占1个字 节),并为每一个内存单元进行了编号,内存单元的编号称为该内存单元的地址。一般情况下,我 们每一个变量都是由多个内存单元构成的,所以每个变量的内存地址,其实就是这个变量对应的第 一个内存单元的地址,也叫首地址。4. 指针变量只能指向同类型的变量,借助指针变量访问内存,一次访问的内存大小是取决于指针变量 的类型。指针变量做函数参数往往传递的是变量的地址(首地址),借助于指针变量间接访问是可以修改实参 变量数据的。

2024-08-07 16:14:53 679

原创 c语言11天笔记

我们在函数设计过程中,经常要考虑对参数的设计,换句话说,我们需要考虑函数需要几个参数,需 要什么类型的参数,但我并没有考虑函数是否需要提供参数,如果说函数可以访问到已定义的数据, 则就不需要提供函数形参,那么我么到底要不要提供函数参数,取决于什么?原因是数组形参代 表的仅仅是实际数组的首地址。外部函数:使用extern修饰的函数,称作外部函数,extern是默认的,可以不写,也就是说本质上 我们所写的函数都是外部函数,建议外部函数在被其他文件调用的时候,在其他文件中声明的时 候,加上extern关键字。

2024-08-06 17:56:25 1993

原创 c语言第十天笔记

函数定义时指定的参数,形参是用来接收数据的,函数定义时,系统不会为形参申请内存,只有当函 数调用时,系统才会为形参申请内存,用于存储实际参数,并且当函数返回,系统会自动回收为形参 申请的内存资源。③ 若使用用户定义的函数,而用户函数又在主调函数的后面,则应在主调函数中对被调用的函数进 行声明。声明的作用是把函数名、函数参数的个数和类型等信息通知编译系统,以便在遇到函数时, 编译系统能正确识别函数,并检查函数调用的合法性。被调函数返回给主调函数的结果数据(可以是变量、常量、表达式,只要是有确定值即可。

2024-08-06 12:35:55 859

原创 C语言第九天笔记

11. 电影院为了答谢影迷的支持,在某一排的某一列座位上放置了一个大礼包,放置礼物的位置具有这 样的规则(行和列的平方和为开店日期 512(5月12日));2. 每次排序假定第一个元素是最大/最小的,用第一个元素的后面的元素一一与第一个元素比较, 遇到较大/较小的和第一个元素交换,访问完数组的最后一个元素,就排好了一个数;2. 每次排序将相邻数据两两比较,将较大或较小的数据向后交换,等所有数据都比较完成,将较 大/较小的数就会出现在最后,这也是该数应该有的位置。数组中元素的地址值,下标越大,地址值越大。

2024-08-01 19:22:49 1399

原创 C语言第八天笔记

3. 极值【知识点:数组】 定义一个变量,并赋初值为第一个数据项 从第二个数据项开始,一次性与该变量进行比较,如果大于/小于该变量,则将当前数据项的数 据赋值给该变量。3. ② 是循环条件,用来限制循环的次数,循环条件支持关系表达式,如果加入逻辑表达式,会变成 复合表达式,举例: i < 10 && j < 10。2. ① 是循环变量,我们需要赋初值,循环变量可以是列表,多个循环变量使用逗号分隔,举例: in t i=0,j=0;3. 计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n=

2024-07-31 23:33:09 769

原创 c语言第七天笔记

输入站数,计算费用,计费规则,6站2元,7-10站3元,11站以上为4元。2. 计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) =?3. ② 是循环条件,用来限制循环的次数,循环条件支持关系表达式,如果加入逻辑表达式,会变成 复合表达式,举例: i < 10 && j < 10。2. ① 是循环变量,我们需要赋初值,循环变量可以是列表,多个循环变量使用逗号分隔,举例: in t i=0,j=0。= 123.....*n n值通过键盘输入。

2024-07-30 18:55:53 883

原创 c语言第六天笔记

编写一个程序根据输入的用电量,计算电费。计算bmi的值, bmi = (体重/身高的平方) 如果bmi 小于18.5,则显示“偏瘦,注意加强营养” 如果bmi 在18.5和23.9之间,则显示“体重指数良好,注意保持” 如果bmi值大于23.9 ,则显示“你有点偏胖,注意锻炼”就会直接执行它后面紧跟的case中的语句(不会判断表达式是 否和它后面的case常量是否相同),这样的现象称之为case穿透。3. 表达式中的数据类型:char,short,int,long,long long,不能是浮点型。

2024-07-29 20:43:01 642

原创 C语言第五天笔记

字符串-----------------%ms 输出的字符串占m列。显然,这个程序中的 第二个格式输出语句输出 的结果是错误的,这是因 为在第二个格式输出语句 中,格式说明符%d是基本 整型格式说明符,而输出 项目是双精度型的数据, 它们是不匹配的。⑷ 在输入数值型数据时,遇到空格、回车、Tab键或遇非法输入,则认为该数据结束: scanf("%d%c%f", &a,&b,&c);字符char型----------- %mc 输出的字符占m列,如: printf(“%3c”,’a’);

2024-07-26 19:47:48 1024

原创 c语言第四天笔记

比如:我们从磁盘里读取信息,先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓 冲区的数据取完后再去磁盘中读取,这样就减少磁盘的读写次数,再加上计算机对缓冲区的操作大大 快于磁盘的操作,故应用缓冲区可大大提高计算机的运行速度。缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间, 这些存储空间用来缓冲输入 或者输出的数据,这部分预留的空间叫做缓冲区。2. 如果非要进行有符号的移位运算,那么左移的时候,空出来的补0,右移的时候,空出来的补符号 位(原码阶段)

2024-07-25 19:16:54 2337

原创 C语言第三天笔记

分析上面的案例,我们发现,不管是 ++ 在前,还是 ++ 在后,计算数自身都会+1。++ 在后,先运算,后自加1。字符的存在分为两种形式,ASCII码(编号,从0开始的正整数)和ASCII码值(数据,包括英文字母 大小写、数字、特殊符号)|| :逻辑或(或),符号两边的操作数只有有一个为真,结果就为真。3. 可以在变量定义的同时给变量赋值,这个操作称为变量的初始化,C语言允许对变量进行初始化。2. 定义变量后,如果未对变量进行初值的赋予,则变量所代表的内存空间中的数据是随机安排的。

2024-07-24 18:02:18 976

原创 c 语言第二天作业

‌在补码中,‌正数的补码与其原码相同,‌负数的补码是将其原码的每位取反后再加1。‌在反码中,‌正数的反码与其原码相同,‌负数的反码是将其原码的每位取反(‌0变1,‌1变0)‌。原码:‌原码是最直接的表示方法,‌其中最高位表示符号位(‌0表示正数,‌1表示负数)‌,‌其余位表示数值的绝对值。‌例如,‌+5的原码是00000101,‌-5的原码是10000101。原码、‌反码、‌补码是计算机内部表示和处理数值的方法,‌它们的存在主要是为了解决计算机在处理带有符号的数值运算时的特殊需求。2、为什么要有这几个?

2024-07-23 20:03:02 443

原创 c 语言第二天补充

在内存中,有符号数使用最高位(通常是符号位) 来表示正负。如果最高位为0,表示这个数是正数或0,如果最高位为1,表示这个数是负数。其余 位用于表示数值本身。在C语言中,整数是可以带符号的(有符号,signed)或不带符号的(无符号,unsigned)。在内存中,无符号数不使用符号位,所有位都用于表示 数值。注意:有符号位是默认的,在C语言中,基本整数类型如int,short,long默认为有符号数,除非明确 指定为无符号。注意:在C语言中,要求对所用到的变量使用前必须先强制定义,即:先定义,后使用。

2024-07-23 19:20:51 458

原创 c 语言第二天笔记

")、printf("")、printf(1)-数值常量、printf("1")-字符串常量。注意: * 前面是常量或者变量,此时 * 是数学运算符乘号, * 前面是数据类型,此时 * 表示指针。UTF-8:长度变化的字符集,是对Unicode字符集的优化,提高效率,表示: \xe68891。十六进制常量:以0x开头,由0~9,A-F共16个字符构成,一般用于嵌入式开发。长整型一般在数值后加 L 或者 l;\ '\0' :0字符对应的ASCII码值是0。二进制常量:以0b开头,由0,1两个数字构成。

2024-07-23 12:36:58 528

原创 c 语言第一天

C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不做检查等。小驼峰命名法:如果只有一个单词,全部小写,如果超过两个单词,从第二个单词开始,首字 母均大写,举例:getAge() | userId,Java或者C++ 推荐这种写法。内存储器:临时存放待处理的数据及运行的程序代码,访问速度快,数据是临时存放,相对来说,容量较小,举例:内存条。主函数:C程序由函数组成。注释:增加程序的可读性,不被执行,主要是对代码进行解释说明,举例: // 向控制台输出一句话。

2024-07-22 20:31:04 938

原创 linux 第一周重点整合 (续)

x :解包 -j :与-z类似,不过使用的是bzip2指令,扩展名为 .bz2 eg: tar -cvf love.tar love2.txt love.txt 打包love2.txt,love.txt文件并压缩到love.tar中 tar -xvf love.tar 解包love.tar中的love2.txt和love.txt。gzip aa.c 压缩aa.c文件 gzip -d aa.c.gz 解压aa.c.gz gzip -r a 递归压缩a文件夹,将a文件夹中的所有文件进行压缩,文件夹没有变化。

2024-07-21 14:23:58 617

原创 linux 第一周重点整合

注意:我们的权限数字表示: 777 ,三个数字,第1个数字代表当前用户(4+2+1),第2 个数字代表当前用户组(4+2+1),第3个数字代表其他用户(4+2+1),每个数字都是权限累 加的结果,比如 777 其实就是 4+2+1,4+2+1,4+2+1。-size :按文件大小查找,举例: find ./ -size +3M 查询当前路径下,所有大于3M的文 件,大于3M(+3M),小于3M(-3M),这里1代表512个字节(B),通过“+”和“-”控制大于和小于。

2024-07-21 00:05:09 1000

原创 linux 第五天笔记补充

如果我们要想访问这个外设(存储外设),我们就需要访问/dev下对应的 映射文件,或者根据文件系统将外设挂载到我们指定的挂载点,这样我们就可以正常访问。Linux中的根目录以外的文件要想被访问,就需要将其关联Linux系统中的某个目录来实现,我们 将这种关联操作称作“挂载”,这个目录就是“挂载点”,解除此关联关系的过程称作“卸载”。sudo mount -t ext4 /dev/sda1 /mnt 以ext4文件系统类型挂载/dev/sda1文件,将其挂载 到/mnt下。

2024-07-20 23:21:35 585

原创 linux第5天笔记

和windows的网段不一样,是由虚拟网卡分配网段和IP,并且能够与windows系统一样可以连接到 互联网。-h 以-b,-k,-m显示,最常用的选项 eg: df -h eg df -h /dev/sda1。/home 这里管理家目录,也就是存放用户对应的目录,如果开发写的权限,会危害到用户数据。/ 整个Linux的核心目录,如果开放写的权限,会危害到系统本身。坏处:占用路由器的IP,如果路由器的载荷过大,网络会掉线。-h :以 -b -k -m显示,最常用的选项。

2024-07-19 14:04:01 587

原创 linux 第四天笔记补充

2024-07-18 17:21:41 184

原创 Linux 第四天笔记

2024-07-18 11:33:32 382

原创 Linux 第三天笔记补充

2024-07-17 17:49:59 224

原创 linux 第三天课堂笔记

普通用户:安装系统时我们创建的用户,这个也可以由管理员来分配,如:yueqian。最高管理员:root,Linux系统内置,当第一次使用root用户需要修改密码。注意:终端输入密码时没有提示,如果输入错误按回车键会提示你重新输入。2.su root -- 设置了密码之后,可以通过这个命令进入。1 sudo passwd -- 然后按照提示输入密码即可。1.sudo -i -- 没有设置密码的时候,使用这个进入。普通用户和最高管理员切换。普通用户和最高管理员。

2024-07-17 15:19:10 409

原创 Linux笔记第二天

说明:被移动的文件名与目的地的文件名不一致,相当于重命名了。:存放系统和应用程序依赖的库文件,有系统库,也有第三方库。:显示指定路径(默认当前路径)下的文件或者目录。:将文件以相反次序显示(原定依照英文字母次序):家目录,存放当前系统下所有用户对应的目录。)为参考点描述的路径,称之为绝对路径。)为参考点描述的路径,称之为相对路径。:显示所有(包含隐藏文件)文件或目录。:显示所有的文件或目录的详细信息列表。:将文件以创建时间的先后次序显示。:查看当前目录的路径(绝对路径):切换到当前家目录下的用户目录下。

2024-07-16 19:08:57 400

C语言第8章-指针.ppt

C语言第8章-指针

2024-08-13

C语言第7章-函数.ppt

C语言第7章-函数

2024-08-13

C语言第6章-数组.ppt

C语言第6章-数组

2024-08-13

C语言第5章-循环结构.ppt

C语言第5章-循环结构

2024-08-13

C语言第4章-选择结构.ppt

C语言第4章-选择结构

2024-08-13

C语言第3章-顺序结构.ppt

C语言第3章-顺序结构

2024-08-13

C语言第2章-数据类型.ppt

C语言第2章-数据类型

2024-08-13

c语言第一章课件概述ppt

c语言第一章课件概述ppt

2024-08-13

linux笔记-01安装与教程

linux 自学整理笔记1

2024-07-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除