自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 0908 C++标准模板库和异常处理

程序运行时发生的不正常事件。

2025-09-08 21:00:14 590

原创 0904 类的继承

父类的构造函数会被继承到子类中,在构造的顺序中,是先构造父类,再构造子类在创建子类时,会先调用父类的构造函数,再调用子类的构造函数。

2025-09-04 19:31:28 1003

原创 0903 C++类的运算符重载、静态成员与继承

使原本只能对基本数据类型生效的运算符,在重载后,满足可以对构造类型数据生效。

2025-09-03 20:49:13 778

原创 0902 C++类的匿名对象

对运算符进行重新定义,让其可以适应不同的数据类型。

2025-09-02 20:06:33 729

原创 0901 C++的动态内存分配与回收

在初始化一个类对象时使用,只有构造函数有初始化列表1.浅拷贝:当使用系统默认的拷贝构造函数,就是浅拷贝2.深拷贝:当使用程序员自己定义的特殊拷贝构造函数,就是深拷贝当类成员里面有一个指针类型的成员,在使用浅拷贝时,系统默认直接赋值指针地址到新的类对象,此时两个类对象的指针成员的存储地址指向同一片区域,当有一个类对象改变时,会连带另一个类对象改变。

2025-09-01 20:50:52 1128

原创 0830 C++引用&const&函数重载&结构体&类

没有定义带默认参数成员的值,则使用默认参数,定义了则使用定义的值void fun(string name="kitty") //默认参数值 string name = "hello meimei"int main()fun();return 0;

2025-08-30 15:08:22 720

原创 0828 C++基础

本文梳理了C++编程的核心知识点:1. C++作为面向对象语言,具有封装、继承、多态三大特性,完全兼容C语言;2. 详细介绍了输入输出函数(cin/cout)、基本数据类型及其格式化输出方式;3. 重点讲解string字符串类型,包括初始化、比较、常用函数及与字符数组的转换;4. 说明数组容器array的使用方法及迭代器操作;5. 解释命名空间的作用和使用方法;6. 最后给出一个字符串统计程序示例,演示如何统计各类字符数量。全文系统性地整理了C++基础语法要点,适合初学者快速掌握核心概念。

2025-08-28 20:54:14 794

原创 0825 http梳理作业

1.设置端口,和ip地址,创建服务器套接字文件2.绑定,监听等待客户端接入。

2025-08-25 21:23:00 251

原创 0821 sqlite3_get_table函数(数据库函数的补充)

客户端可以注册登录退出(一级导航栏),查词查找自己查询的记录和返回上一级导航栏(二级导航栏)服务器端需创建用户数据库(信息表和记录表)和单词数据库,并完成与客户端的反馈和完成其功能。

2025-08-21 22:10:24 533

原创 0820 SQlite与c语言的结合

4.int (*callback)(void*,int,char**,char**):回调函数四个参数。int (*callback)(void*,int,char**,char**):回调函数。原型:insert into 表名 values (数据1, 数据2, 数据3);原型:const char *sqlite3_errmsg(sqlite3*);原型:int sqlite3_errcode(sqlite3 *db)原型:int sqlite3_close(sqlite3*);

2025-08-20 21:15:03 1132

原创 0819 使用IP多路复用实现TCP并发服务器

【代码】0819 使用IP多路复用实现TCP并发服务器。

2025-08-19 21:45:44 307

原创 0818 基于UPD的TFTP文件传输

【代码】0818 基于UPD的TFTP文件传输。

2025-08-19 09:01:49 303

原创 0815 UDP通信协议&TCP并发服务器

服务器端:1.用socket函数创建一个套接字文件2.创建服务器端地址结构体并赋值3.用ford函数将套接字文件与地址结构体绑定4.创建接收客户端地址结构体5.利用sendto和recvfrom函数传输和接收信息客户端:1.用socket函数创建一个套接字文件2.创建客户端地址结构体并赋值3.用ford函数将套接字文件与地址结构体绑定4.创建服务器端地址结构体5.利用sendto和recvfrom函数传输和接收信息。

2025-08-16 14:48:09 972

原创 0814 TCP通信协议

创建套接字函数。

2025-08-14 21:39:20 922

原创 0813 网络编程基础

1.APRAnet阶段2.TCP/IP协议阶段3.osi开放系统阶段4.TCP/IP协议族。

2025-08-13 21:31:47 1160

原创 0807 IO线程的同步互斥

由于线程之间的数据是共享的,导致多线程访问数据时,线程的光标位置难以确定,故引入同步互斥。临界资源:多线程访问的资源互斥:同一时间只能一个线程访问同步:互斥的基础上,保证了顺序。

2025-08-07 20:54:46 1053

原创 0806线程

由于进程之间的切换,会伴随着cpu的资源转换,需要花费时间。所以创建一个资源共享的线程就成为了解决问题的方法,进程之间的数据交互需要引入同步互斥。

2025-08-06 21:38:13 784

原创 0805 进程的getpid&exit&wait函数

a.wait:阻塞调用的进程,当该进程的子进程结束时(exit),回收该子进程资源,并接收该子进程的退出状态值(exit传递给父进程的值)< -1 等待进程组id等于pid绝对值的进程组下的任意子进程 -1234 进程组id |-1234|=1234 进程组号。b.waitpid:可以选择是否阻塞调用函数,可以选择作用的子进程,回收该子进程的资源,并接收该子进程的退出状态值。b.gerppid:成功返回调用进程的父进程的进程id,没有失败值。父 ---- 子 ---- 孙 ---- 曾孙。

2025-08-05 20:46:39 850

原创 0804 进程

a.进程是在内存上存在的,会有创建和消亡的过程b.程序是在硬盘上存在的。

2025-08-04 20:58:20 1056

原创 0803 思维导图+小项目

Part 2.使用文件IO函数,实现文件的拷贝。Part 3.使用标准IO函数,实现图片的拷贝。Part 4.使用文件IO函数,计算文件的大小。Part 1.思维导图。

2025-08-03 22:10:58 178

原创 0731 IO进程基础

io进程是(内存) 与(程序员和系统文件)之间的交互,例如我需要调用系统文件作为程序的数据,就需要input函数。我需要将数据保存到系统文件,则需要output函数。

2025-07-31 21:04:39 1287

原创 0730 数据结构重点整理

1.队列是先进先出的一个线性结构,会定义两个指针front和rear指向0,当插入一个数据时,rear++,当删除一个数据时front++,所以队列只能先进先出,当队列已经插入最大值的数据了,并且将所有数据都删除了,此时front == rear == maxsize,此时就会产生假溢出。将第一个元素设为基准值,每次循环把大于基准值的放基准值右边,把小于基准值的放左边(升序),即完成了一个数的排序,然后利用递归算法循环调用自己则完成排序。也可以进a出a,进b出b,进c出c;

2025-07-30 13:32:20 511

原创 0728 哈希表&折半查找&树&二叉树

b.中序遍历:左根右,先输出左节点,如果左节点还有左节点也是先继续输出左节点,然后再是根节点和右节点。f.结点的层数:是从根结点到某结点所路径上的层数【根结点表示第一层】运用链表的哈希表,就是创建一个链表数组,根据原数据的地址%p得到的值,就行在对于的数组的链表插入。a.先序遍历:根左右,先输出根节点,在输出左节点,最后再是右节点。d.祖先结点:是当前结点的直接及间接上级结点。d.分支结点(内部结点):是度不为0的结点。b.孩子结点:是指当前结点的直接下级结点。e.叶结点(终端结点):是度为0的结点。

2025-07-28 20:47:19 790

原创 0724 双向链表

摘要:本文介绍了双向链表的基本操作实现,包括节点创建、插入、删除和查找等。双向链表节点包含prev和next指针,头节点的prev和尾节点的next指向NULL。具体实现了头插、尾插、头删、尾删等操作,每个操作都需处理指针的重新指向问题。此外还实现了按位置查找、修改、插入和删除功能,在插入和删除时需特别注意边界条件处理,如是否为头/尾节点。所有操作都包含错误检查并维护链表长度(len)。代码采用结构体嵌套联合体存储数据,提高了内存使用效率。

2025-07-24 20:44:06 926

原创 0723 单项链表

本文介绍了单向链表的基本实现方法,主要包括:1)使用结构体和联合体创建链表节点;2)实现头插、头删、尾插等基本操作;3)实现按位置/元素查找、修改和删除功能;4)链表逆置和排序算法;5)查找倒数第n个节点的双指针法。文中详细说明了每个操作的具体实现步骤和注意事项,如头插法需要更新头节点指针,删除操作需要释放内存等。代码示例展示了链表常见操作的实现逻辑,包括使用临时指针进行节点交换的排序算法,以及通过双指针间隔查找倒数节点的技巧。

2025-07-23 21:16:37 1033

原创 0722 数据结构顺序表

两种方式都是逻辑上相连,但是链式存储物理空间上没有相连。一个下标从0开始,和数组相似的,连续存储的空间。使用一段连续的空间存储多个相同类型的数据元素。使用任意一段空间存储多个相同类型的数据元素。用索引方法和数据表实现查找的结构。使用哈希存储的一直存储方式。元素之间有一对一的关系。元素之间有多对多的关系。元素之间有一对多关系。

2025-07-22 20:20:22 388

原创 0721 宏&分文件编译&typedef的用法&Makefile文件的编辑

本文总结了C语言编程中的几个重要知识点:1)宏定义与宏函数的使用,包括条件编译指令(#if/#ifdef等)和宏操作符(##);2)分文件编译的组织方式;3)typedef关键字重定义数据类型;4)Makefile的编写,包括变量定义、模式匹配和常用函数(wildcard/patsubst)。这些知识点涵盖了C语言预处理、项目组织、编译管理等核心内容,是提高代码质量和开发效率的关键技术。文末还提到通过牛客网刷题来巩固这些知识点的实践方法。

2025-07-21 20:37:49 1115

原创 0717 结构体与函数的封装结合使用,实现程序目的

1) 学校人员管理系统,使用结构体和联合体存储学生(姓名/性别/分数)和教师(姓名/性别/职务)信息,实现了内存分配、数据输入、分类统计和输出功能;2) 商品管理系统,通过结构体存储商品信息(名称/单价/数量/描述),实现了排序、最贵商品查找和总价计算功能;3) 结构体相关知识点总结,包括结构体指针、嵌套、内存对齐规则(32/64位系统差异)、位域压缩技术以及共用体和枚举的使用方法。所有程序均采用动态内存分配,最后正确释放内存。

2025-07-17 21:34:05 1206

原创 0716 指针函数和函数指针&动态地址分配&递归&结构体的定义

【摘要】本文系统介绍了C语言中指针相关概念与应用,主要内容包括:1)指针函数与函数指针的区别,前者返回指针,后者指向函数;2)六种特殊指针类型(数组指针、指针数组、常量指针等)的定义与用法;3)动态内存分配(malloc/free)的原理及内存泄漏防范;4)递归函数的实现三要素(出口、逻辑、返回段)及在数列、进制转换中的应用;5)结构体类型的定义、初始化及成员访问方法。文中通过多个代码实例(如斐波那契数列、猴子吃桃问题等)演示了这些核心概念的具体实现。

2025-07-16 20:59:57 860

原创 0715 二级指针&特殊指针&函数

本文主要介绍了C语言中的指针和函数相关概念。内容包括:二级指针的定义与使用(存储指针地址,偏移量8字节);特殊指针类型(野指针、空指针等)及段错误的产生原因;函数的定义、调用、声明、返回值与参数;变量分类(全局/局部)及存储类型(auto/register等);值传递与地址传递的区别;数组作为函数参数的传递方式;并实现了自定义的字符串操作函数mystrcpy和mystrcat。全文系统梳理了C语言指针与函数的核心知识点,通过代码示例展示了关键概念的实际应用。

2025-07-15 20:51:15 1053

原创 0714 指针与一维二维数组&数组指针&指针数组

本文总结了C语言指针与数组的核心知识点:1)指针与一维字符数组的关系,包括地址访问和元素访问的等价形式;2)内存分区特点(栈区、堆区、rodata区);3)指针与字符常量的关系及修改限制;4)转义字符的长度计算规则;5)二维数组与指针的关系,包括行指针、列指针和数组指针;6)指针数组的定义和使用;7)main函数外部参数的访问方法。重点说明了指针在不同内存区域的访问特性,以及指针与数组之间的各种等价访问方式。

2025-07-14 20:56:46 1097

原创 0712 自习复习

1.连续存储的相同数据类型数据的结构2.下标都从0开始。

2025-07-12 17:18:51 1223

原创 0711 C语言二维字符数组&指针与数组的运用

本文主要介绍了C语言中二维字符数组和指针的相关知识。内容包括:1) 二维字符数组的定义、初始化和赋值方法;2) 指针变量的定义、初始化及与变量的关系;3) 指针运算规则和数据类型的应用;4) 指针与一维数组的配合使用;5) 实际应用案例:通过指针实现冒泡排序算法和查找数组最大值。文中通过代码示例详细演示了指针操作数组元素的方法,并解释了指针数据类型对内存操作的影响,以及指针强制类型转换在大小端判断中的应用。

2025-07-11 20:53:09 1078

原创 0710 一维字符数组和字符串函数族的函数的使用

本文系统整理了C语言中字符数组与字符串处理的核心知识点,包括:1) 一维字符数组的定义、初始化(完全/不完全/不定长)及字符串处理逻辑('\0'的作用);2) 字符串输入输出函数(gets/puts)和关键字符串函数(strlen/strcpy/strcat/strcmp)的实现原理及自定义实现;3) 二维数组的定义与初始化方法;4) 实用案例:二维数组最大值定位、十进制转二进制、单词计数、字符串逆置等。通过代码示例演示了各功能的实现过程,突出了'\0'在字符串处理中的关键作用。

2025-07-10 21:21:26 573

原创 2025 0709 作业

相邻的两个元素,两两比较,每次排出待排序序列中最大的元素放在最后,再进行下一次排序,直到序列中的元素都有序排序需要排长度-1次。Part 3. 终端输入一串字符,以'#'结束,统计大写字母、小写字母和数字字符的个数。b.数组越界后的情况:1.输出随机值 2.报段错误。Part 2. 定义一个有10个元素的数组,终端输入学生成绩,将成绩排序后输出。每次从待排序序列中找到最大/最小的元素和待排序序列中的第一个元素交换。长度:sizeof(arr)/sizeof(arr[0])5.数组的大小和长度。

2025-07-09 20:50:59 1030

原创 2025 0708作业

在后面判断条件时需要判断总钱是否为百钱:5*a + 3*b + c/3 == 100,由于计算机中/为整除,会造成有:公鸡3只有母鸡20只有小鸡77只,条件判断错误。先执行表达式1,将循环变量给初始值,然后判断表达式2的条件是否成立,如果成立执行循环,再执行表达式3,表达式3执行结束,再判断表达式2决定是否进入下一次循环。2.就算条件不成立,do...while也会先执行一边循环体再进行条件判断,但是相同条件相同步长的情况下,do...while和while两个循环次数相同。c.循环变量步长的省略。

2025-07-08 20:57:02 877

原创 2025 0707作业

b.逻辑:if条件满足时,运行{}内的语句块,否则查看条件二,若满足则运行else if{}内的语句块,若条件二也不满足,则执行else{}内的语句块(可以添加多个else if)。b.逻辑:先判断条件一,符合则判断条件二,符合则输出条件二{}内的语句块,否则输出条件二下的else{}内的语句块,若不符合条件一,则输出else{}内的语句块。a.是对()中的值进行判断,与哪个case后面的值相等,就运行该case的语句块。b.逻辑:当if条件成立时执行{}内的语句块,否则执行else{}里面的语句块。

2025-07-07 20:13:52 386

原创 0705自习

宏定义中 ##是连接字符串的作用,name##_##type##_type 语句的含义是“name“ + ”_” + “type” + “_type”,然后替换之后为“val“ + ”_” + “int” + “_type”,故选A。f(&b,a)的作用是将b的地址和a的值赋到f()里,在f()里*c = *c + 1,令b的地址+1,使b由‘a’变为’b’。++ 的优先级比 *的优先级高,所以先执行++,所以应该是p[1],而不是p[0]++,但是是后自增,所以输出p[0],12。

2025-07-05 17:17:00 643

原创 2025 0704作业

将a的第6个bit位置1,将a的第2个bit位取反(bit位默认从第0位开始)运算过程:有两个有两个即以上运算时,先从右往左运算,++a令a变为7,然后a++输出的时自增前的值,所以输出7,然后将a++自增后的值赋给第二个%d输出。运算过程:一样先计算a++,但是输出的是自增前的数,所以第二个%d输出为6,经过a++后付给++a的a值为7,所以++a输出8。a:b(输入Max(a,b)可比较a,b的大小)= a!== a==b a,b相等为真否则为假。

2025-07-04 22:06:15 1038

原创 0703作业思维导图

2025-07-03 20:22:57 99

空空如也

空空如也

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

TA关注的人

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