- 博客(25)
- 收藏
- 关注
原创 【DAY24】Linux软件编程:进程原理、命令及编程实现总结
本文介绍了进程和线程的基本概念及相关操作。进程是程序的动态执行过程,包含创建、调度和消亡三个阶段。文章详细讲解了进程管理命令(如top、ps、kill等)、进程状态(运行态、就绪态等)、进程空间分布(虚拟地址与物理地址映射)以及进程调度算法。同时介绍了进程创建函数fork()和相关系统调用(如getpid、wait等)。线程部分阐述了其轻量级特性,对比了进程与线程的区别(空间独立性、资源分配等),分析了多线程优缺点,并提供了线程创建函数pthread_create的使用方法。全文系统性地梳理了操作系统进程与
2026-02-10 21:38:42
900
原创 【DAY23】Linux软件编程基础:文件 IO 与目录 IO 实操指南:接口使用与实现详解
本文摘要: 本文系统介绍了Linux系统中的文件IO与目录IO操作。主要内容包括:1)文件IO与标准IO的区别,前者无缓存直接系统调用,后者有缓存封装为库函数;2)文件IO核心系统调用接口(open/close/read/write/lseek)的功能、参数及返回值;3)目录IO操作接口(opendir/readdir/mkdir等)的使用方法;4)时间相关接口(time/localtime/mktime)的功能说明。文章详细说明了文件描述符特性、默认描述符分配及各类IO操作的具体实现方式,为Linux系统
2026-02-09 21:30:09
944
原创 【DAY22】Linux软件编程基础:IO编程(函数接口)详解
本文摘要: 标准I/O是Linux系统中的核心概念,将设备、文件等抽象为文件进行操作。主要内容包括:1)文件类型分类,包括块设备(b)、字符设备(c)、目录(d)等;2)标准I/O接口分类,分为有缓存的普通文件I/O和无缓存的设备/通信文件I/O;3)标准I/O操作流程,包含打开(fopen)、读写(fputc/fgetc等)和关闭(fclose)文件;4)缓存类型,分为全缓存(4K)、行缓存(1K)和不缓存三种;5)常用函数接口如fputs/fgets、fprintf/fscanf等;6)文件定位函数fs
2026-02-06 22:16:16
842
原创 【DAY21】Linux软件编程基础&Shell 命令、脚本及系统管理实操
本文介绍了操作系统的基本概念和Shell命令使用。操作系统是管理硬件资源、为应用程序提供统一接口的软件系统。Shell命令部分详细讲解了文件查看(cat/head/tail)、管道操作、搜索(grep)、重定向、权限管理(chmod)、压缩解压(tar)等常用命令,以及Shell脚本编程基础,包括变量、分支、循环、数组和函数等核心语法。同时提供了虚拟机网络配置和软件安装(apt-get/dpkg)的实用指导,涵盖了Linux系统管理和开发的基本操作。
2026-02-05 22:02:50
766
原创 【DAY20】数据结构基础:(算法)排序、折半查找的函数实现
本文介绍了常见排序算法的实现及其特性,包括冒泡排序、选择排序、插入排序、希尔排序和快速排序。分析了各算法的时间复杂度(O(n^2)或O(nlogn))和稳定性(是否保持相同元素的相对位置)。提供了C语言实现代码,包含随机数生成、输入输出函数以及各排序算法的具体实现。此外还介绍了基于有序数据的折半查找算法实现。所有代码示例完整,可直接用于算法学习和实践应用。
2026-02-04 19:54:56
323
原创 【DAY19】数据结构基础:完全二叉树&非完全二叉树&哈希表的创建与应用
本文介绍了二叉树和哈希表的核心算法实现。对于二叉树,详细讲解了递归法创建完全二叉树(DFS)和层序遍历(BFS)的实现,包括前序、中序、后序遍历的递归和非递归版本(使用栈结构)。对于非完全二叉树,展示了创建和遍历方法。在哈希表部分,阐述了哈希算法原理、哈希冲突解决方法(链地址法),并提供了哈希表的插入、查找、显示和销毁等函数的具体实现。文中代码示例展示了多文件编程的实现方式,涉及内存管理、递归调用和数据结构操作等关键技术。
2026-02-03 22:06:08
117
原创 【DAY18】数据结构基础:二叉数的基本概念&前、中、后序理解
本文介绍了树形数据结构的基本概念和二叉树特性。树是由节点组成的非线性结构,包含根节点、分支节点和叶子节点。基本术语包括前驱/后继、层数、高度、深度和度(入度/出度)。二叉树是每个节点最多有两个后继节点的树形结构,分为满二叉树和完全二叉树两种特殊形式。二叉树具有特定数学特性,如第k层最多有2^(k-1)个子节点。遍历方式包括深度优先遍历(前序、中序、后序)和广度优先遍历。这些概念为理解和实现树形数据结构奠定了基础。
2026-02-02 23:13:27
103
原创 【DAY17】顺序栈&链式栈&对列的实现
本文介绍了两种栈的实现方式(顺序栈和链式栈)以及循环队列的实现。顺序栈使用数组存储数据,实现了创建、销毁、入栈、出栈等基本操作;链式栈采用链表结构,实现了类似功能。循环队列通过数组实现,利用头尾指针解决队列空间复用问题。代码示例包含头文件定义、函数实现和主程序测试,并提供了Makefile文件用于编译和内存检查。这些数据结构在C语言中实现了常见的基本操作,可用于解决实际问题中的后进先出(栈)和先进先出(队列)需求。
2026-02-02 22:28:06
124
原创 【DAY16】数据结构基础:双向链表&双向循环链表
本文介绍了双向链表和双向循环链表的实现方法,以及数组与链表的区别。主要内容包括:1)双向链表的基本操作实现(头插法、尾插法、查找、删除、替换等);2)双向循环链表的创建和操作(插入、删除、销毁等);3)数组与链表的三大区别:存储连续性、操作效率、访问方式;4)栈和队列的基本概念与分类。文章通过代码示例详细展示了链表的实现过程,并比较了不同数据结构的特性差异,为理解基础数据结构提供了实用参考。
2026-01-31 22:09:19
707
原创 【DAY15】数据结构基础:顺序表 & 单向链表核心操作
本文概述了数据结构的基本概念和两种主要实现方式。首先阐述了程序由数据结构和算法组成,并介绍了时间复杂度与空间复杂度的概念。然后详细讲解了数据结构的逻辑结构(线性、树形、图形)和存储结构(顺序、链式、索引、散列)。重点分析了顺序表和链表的实现:顺序表通过堆区数组存储数据,包含创建和销毁操作;链表则分为单向有头链表等多种类型,详细说明了头插法、尾插法、删除节点、查找中间/倒数节点、反转链表以及冒泡和选择排序等核心操作的实现方法。全文提供了数据结构的理论基础和具体实现代码。
2026-01-29 22:45:18
181
原创 【DAY14】C 语言内存越界、泄漏排查:库函数 + GDB+Valgrind 实操导向
本文介绍了C语言常用库函数和内存调试方法。常用库函数包括sprintf、sscanf、strtok、strstr等字符串处理函数的使用示例。内存调试部分详细讲解了语法错误、逻辑错误的排查方法,包括打印法和GDB调试技巧。重点分析了内存越界、段错误和内存泄漏等常见问题的成因及解决方案,推荐使用strncpy等安全函数替代风险函数,并介绍了valgrind工具的使用方法。最后提供了在Ubuntu系统上安装配置valgrind的完整步骤。
2026-01-26 20:47:46
1023
原创 【DAY13】多文件编程规范与 Makefile 工程管理工具全解析
核心内容:覆盖多文件编程规范、Makefile 核心用法(变量、赋值、函数)、gcc 编译选项及动 / 静态库特性;关键规则:多文件编程需功能拆分且仅一个 main.c,Makefile 通过规则实现自动化编译;库文件差异:静态库编译加载无运行依赖但体积大,动态库运行加载省空间但依赖库文件。
2026-01-24 23:52:08
579
原创 【DAY12】深入理解 C 语言:共用体 / 枚举 /typedef、位运算及内存管理
本文主要介绍了C语言中的三种复合数据类型和内存管理相关知识。1)共用体(联合体):所有成员共享同一内存空间,大小由最大成员决定,可用于测试内存大小端;2)枚举:定义一组整型常量,默认从0开始递增;3)typedef:为数据类型创建别名。文章还详细讲解了位运算符及其应用,包括置位、清零和变量交换等操作。最后介绍了内存管理,对比了栈区和堆区的特点,说明malloc/free的使用方法及适用场景,指出栈区由系统管理而堆区需程序员手动管理,并解释了两者的增长方向差异。
2026-01-23 22:42:17
999
原创 【DAY11】深挖 C 语言:数字运算技巧 + 结构体 6 大核心用法(附代码)
本文介绍了C语言中数字拆分拼接技巧和结构体相关知识点。主要内容包括:1)通过取模和除法运算实现数字拆分与拼接;2)main函数参数传递的四种形式;3)结构体类型定义、变量定义与初始化方法;4)结构体成员访问方式(.和->操作符);5)结构体内存对齐原则;6)结构体作为函数参数的应用。文中通过示例代码演示了结构体嵌套使用、指针访问成员变量等典型用法,并详细说明了结构体内存对齐的计算方法。
2026-01-22 21:43:10
1294
原创 【DAY10】C 语言指针太难?一文搞懂二级指针 / 数组指针所有高级用法
本文深入讲解了指针的高级应用。主要内容包括:1)二级指针的定义与使用,用于修改指针变量指向的空间值及指针数组传参;2)void指针的特性与类型转换规则;3)volatile指针的作用,防止编译器优化;4)数组指针与指针数组的区别及应用,包括二维数组的访问方式和传参方法。通过具体代码示例演示了指针数组操作字符串数组、数组指针操作二维数组等实用场景。文章系统性地介绍了指针在C语言中的多种高级用法,为深入理解指针机制提供了详细指导。
2026-01-21 22:39:49
1023
原创 【DAY9】C 语言指针全解析:从基础概念到函数指针应用
本文介绍了C语言中指针的基本概念和应用。主要内容包括:1.指针的基本概念,包括地址、指针变量定义和运算符(&和*)的使用;2.指针变量的初始化和内存访问方式;3.指针作为函数参数的应用;4.指针与数组的关系;5.函数指针和指针函数的区别及用法;6.const指针的三种形式及其特性。通过示例代码展示了指针在变量操作、数组处理、函数传参等方面的实际应用,帮助理解指针在C语言编程中的重要作用。
2026-01-19 22:11:37
1207
原创 【DAY8】基于代码示例的 C 语言 函数参数传递 与预处理命令剖析
本文介绍了C语言中的函数参数传递和预处理命令。主要内容包括:1.四种参数传递方式(值传递、全局变量传递、整型数组传递、字符型数组传递)的实现方法和特点;2.递归调用的实现示例;3.预处理命令中的宏定义(不带参宏和带参宏),并比较了带参宏与函数的区别。文中通过具体代码示例演示了各种技术在实际编程中的应用,如值传递不会改变外部变量、全局变量实现数据交换、数组参数传递等。最后还说明了带参宏在效率上的优势及其适用场景。
2026-01-17 20:44:25
603
原创 【DAY7】C语言基础:函数基本概念精讲与二维字符型数组!
本文摘要介绍了C语言中二维字符数组和函数的基本概念及应用。主要内容包括:1)函数定义、调用和声明的语法规则;2)变量作用域(局部/全局变量)和生存周期(auto/register/extern/static存储类型);3)通过Linux系统实现比较两个数大小的函数示例。重点阐述了函数返回值类型、形参与实参的区别,以及不同存储类型变量的特性。文末给出了一个完整函数示例,演示如何定义比较函数并在主函数中调用。
2026-01-16 21:46:48
788
原创 【DAY6】C语言基础:字符数组(字符串)与二维整型数组精讲
本文介绍了C语言中一维字符型数组和二维整型数组的基本概念与操作。一维字符数组用于存储字符串,包括定义、初始化、访问元素、存储特性以及常用字符串处理函数(strlen、strcpy、strcat、strcmp)的使用方法。二维整型数组则介绍了定义方式、元素访问、初始化方法(全部、局部、默认初始化)以及存储特性(连续性和有序性)。文中通过具体示例展示了字符串倒置、二维数组输入输出等典型操作,并强调了一维字符数组处理字符串时'\0'的重要性以及二维数组初始化时列数不可省略的特点。
2026-01-15 20:03:19
981
原创 【DAY5】C语言基础:数组!一维整型数组全解析!
本文介绍了C语言中一维整型数组的基本操作与应用。主要内容包括:1)数组定义方式与元素访问规则;2)四种初始化方法(全部、局部、默认初始化);3)数组存储特性(连续性、有序性、单一性);4)实际应用示例:终端数据接收、极值查找、数组倒置、冒泡排序和选择排序等算法实现。文中提供了完整的代码示例,并详细说明了各算法的实现逻辑,如数组倒置的交换次数计算(元素个数/2)和排序算法的比较次数(len-1次)。
2026-01-14 22:51:41
559
原创 【DAY4】C语言基础:流程控制全解析!循环?分支?
本文介绍了C语言流程控制中的分支结构和循环结构。在分支结构中,详细讲解了关系运算符、逻辑运算符、三目运算符的使用方法,以及if语句(简单分支、阶梯分支、嵌套分支)和switch语句(基本结构、嵌套结构)的语法和应用场景。在循环结构中,重点阐述了for循环(单层和双层)、while循环(基本形式和死循环)、do-while循环以及goto语句的使用方式,并提供了鸡兔同笼、九九乘法表、累加求和等典型代码示例。最后介绍了辅助控制语句(break、continue、return)的作用和GDB调试工具的基本使用方法
2026-01-12 21:11:20
522
原创 【DAY3】C语言基础:理解程序运行和常用的输入输出函数
本文介绍了C语言程序的基本结构和常用输入输出函数。程序从main函数开始执行,包含头文件以调用库函数。详细讲解了printf和scanf函数的用法:printf支持多种格式控制符(如%d、%f、%s等)进行格式化输出;scanf用于接收输入,需要注意控制符使用规范(如%s不加&符号)。还介绍了putchar、getchar、puts和gets等字符/字符串处理函数的特点,如gets可接收带空格的字符串但会去除换行符。这些基础知识对C语言初学者掌握程序结构和标准I/O操作至关重要。
2026-01-10 20:35:38
903
原创 【DAY2】大学生学了C语言怎么还不会写简单代码?记住框架不会定义怎么办?一篇解决所有问题!
本文介绍了C语言中变量的基本概念和使用方法。主要内容包括:1)变量类型与占位符对应关系,如%d对应int、%f对应float/double;2)变量类型转换,分为强制转换和隐式转换,后者遵循精度由低到高的自动转换规则;3)表达式的定义与算术运算符的使用,强调表达式必有值和类型;4)赋值运算符的特殊规则,如浮点转整型会截断小数;5)逗号运算符的执行顺序;6)sizeof运算符获取数据类型大小。文中通过代码示例展示了变量的定义、打印和类型转换等基本操作。
2026-01-09 20:30:33
1069
原创 在学校学了C语言感觉就像没学?看过来!带你正确开启FIRST DAY
本文介绍了C语言编译流程和基本数据类型。编译过程分为预处理、编译、汇编和链接四个步骤,每个步骤都有对应的gcc命令选项。基本数据类型包括整数类型(int、short、long等)、浮点数类型(float、double)、字符型(char)、void类型和布尔类型(bool),详细说明了各类型的存储空间大小、存储方式和值域范围。此外,还介绍了各种常量类型,包括整型常量、浮点型常量、字符常量、字符串常量和标识常量(宏定义),并提供了查看数据类型大小的方法和常用字符的查询方式。
2026-01-08 19:37:53
573
原创 新手!?小白!?首次学习Linux系统!
本文介绍了Linux操作系统的基础知识,主要包括三部分内容:1) 常用命令如ls、mkdir、rm等文件操作命令;2) 目录结构中的绝对路径和相对路径概念;3) Linux下C语言开发流程,包括使用vim编辑、gcc编译和执行程序。文章通过具体命令示例和编程步骤,帮助初学者快速掌握Linux系统的基本操作和开发方法。
2026-01-07 18:20:01
126
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅