自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 进程---Linux/C语言

摘要:本文介绍了进程的基本概念及其在多任务处理中的重要性。主要内容包括:1) 进程是程序执行的基本单位,包含程序及其资源;2) 进程与线程的区别;3) 进程状态转换(就绪、运行、阻塞、停止);4) 进程创建方法(system、fork等函数);5) 进程特点(动态性、并发性等);6) 实际编程示例(交替打印、多进程创建、数据连续性检测)。通过学习进程管理,可以提高程序执行效率,实现更复杂的任务处理。

2026-01-08 20:17:18 808

原创 C语言-链表

本文介绍了链表的基本概念和操作实现。链表由节点组成,每个节点包含数据域和指针域。通过C语言结构体定义节点类型,实现了链表的初始化、节点添加(头插法和尾插法)、查询、删除(头删和指定节点删除)以及销毁等基础操作。重点展示了如何通过指针操作实现链表节点的插入和删除,并提供了完整的代码示例。此外,还介绍了数字排序链表和两个有序链表合并的实现方法,展示了链表在数据处理中的应用。所有操作都包含参数判空处理,确保程序的健壮性。

2026-01-04 19:48:41 189

原创 C语言--运算符/函数/结构体/指针

本文摘要:本文系统介绍了C语言中的运算符、程序结构、数组、函数、结构体和指针等核心内容。重点讲解了结构体的定义、初始化、嵌套、数组及指针操作,详细说明了字节对齐规则及其优化方法。同时深入解析了指针的分类、使用场景及注意事项,包括指针与函数/数组的结合应用、高级指针类型以及野指针防范等。全文涵盖了C语言编程中的关键知识点,特别强调了结构体和指针在内存管理和数据组织中的重要性,为开发高效、安全的C程序提供了实用指导。

2025-12-30 19:42:20 1185

原创 C语言与Linux

C语言是一种面向过程的高级编程语言,具有静态类型和良好移植性特点。它执行效率高但开发效率较低,适用于驱动开发、操作系统、算法实现等系统级软件开发。C语言程序开发流程包括预处理、编译、汇编、链接四个步骤,支持多种开发工具。其数据类型分为基本类型(整型、浮点型、字符型)和构造类型(数组、结构体等),支持变量和常量的定义与初始化。C语言通过简洁的语法机制实现了对现实世界的抽象描述,是连接用户与计算机的重要工具。

2025-12-30 19:36:53 343

原创 linux基础

本文总结了Linux系统编程与MySQL数据库开发的要点。主要内容包括:Linux基础知识(文件系统、目录结构、常用命令)、系统编程(文件IO、进程线程、网络编程)以及MySQL数据库管理。重点讲解了Linux文件操作指令、权限管理、软件安装、进程查看等实用技能,并介绍了vim编辑器、重定向、计划任务等系统管理工具。文章为开发者提供了从Linux基础到系统编程的完整知识框架,帮助掌握Linux环境下的软件开发全流程。

2025-12-29 19:45:49 820

原创 C语言-双向链表

本文详细介绍了双向链表在C语言中的实现与应用。主要内容包括:1. 指针类型NODE*和NODE**的区别与使用场景,重点说明双指针在修改头节点时的必要性;2. 双向链表的完整实现,包含节点设计、增删改查等基本操作;3. 双向循环链表的实现,分析其循环特性带来的优势;4. 内存检测工具valgrind的使用方法;5. Linux内核链表的设计思想及简化版实现,展示如何解耦链表操作与具体数据类型。文章通过代码示例对比了不同链表结构的优缺点,并阐述了它们在各种场景下的适用性,为开发者提供了链表实现的全面参考。

2025-08-11 20:27:29 1873

原创 顺序表——C语言

本文深入解析顺序表的实现代码与核心原理。顺序表采用数组连续存储元素,包含capacity、last和data指针三个关键属性。代码实现分为初始化、插入(头插法)、扩容(2倍策略)、删除和销毁等核心操作,其中插入删除需移动元素,时间复杂度O(n)。测试展示了表满扩容机制,头插法导致元素逆序存储的特点。文章总结了顺序表随机访问优势与插入删除效率劣势,并探讨了不同扩容策略及内存管理要点,为数据结构学习奠定基础。

2025-08-07 20:20:49 1170

原创 预处理-文件-C语言

本文介绍了C语言中二进制文件操作的核心函数fread()和fwrite()的使用方法。fread()用于从文件流中读取数据块到内存缓冲区,fwrite()则用于将内存数据块写入文件流。两者都需要指定数据项大小、数量和文件指针,返回实际读写的数据项个数。文章提供了结构体读写的完整示例代码,演示了如何将学生信息结构体数组写入二进制文件并读取。同时还介绍了文件随机访问函数(rewind、fseek、ftell)的使用方法,包括如何获取文件大小、定位文件指针和检测文件末尾等操作。

2025-08-06 23:31:16 555

原创 C语言-预处理

本文系统介绍了C语言预处理机制和文件I/O操作。预处理部分详细讲解了条件编译的三种语法形式(#ifdef、#ifndef、#if)、文件包含规范及防止重复包含的方法,并演示了多文件开发实践。文件I/O部分阐述了文件基础概念、缓冲机制、分类及操作流程,重点解析了fopen/fclose、fgetc/fputc、fgets/fputs等关键函数的使用方法,提供了文件拷贝的实用示例代码。

2025-08-05 18:55:35 1132

原创 C语言-预处理

C语言预处理是编译前的预备操作,由预处理器自动完成。主要包括宏定义和文件包含等功能。宏定义分为不带参数(如#define PI 3.14)和带参数(如#define MULTI(a,b) (a)*(b))两种形式,预处理阶段会进行简单的文本替换。宏的作用域从定义处开始,可用#undef终止。宏定义中可引用已定义的宏名,如用PI和R定义周长L。预处理通过gcc -E命令查看结果,它不进行类型检查,也不会占用内存空间。预处理为后续编译做好准备,是C语言编译的重要环节。

2025-08-04 18:55:18 339

原创 C语言-结构体

如果定义不相干的常量,使用宏定义(符号常量);如果需要定义一组相关联的常量,如月份,星期,方向,男女等,使用枚举,进行统一管理,以后正式开发中,switch的case后面访问的就是枚举中的常量定义:我们一般情况下,定义常量使用宏定义( #define 宏名称 宏值 ),宏定义非常适合没有关联关系的常量;但是有时候我们可能需要对一组拥有关联关系的量进行定义,如月份0~11 ,星期 0~6 ,方向 0~3 等,那么使用宏定义,就不是很清晰,也不方便统一管理,同时还会增加代码量,这个时候就需要用到枚举。

2025-08-04 12:49:05 455

原创 C语言-结构体

C语言结构体与共用体详解 本文系统介绍了C语言中结构体和共用体的核心概念与使用方法。主要内容包括: 结构体类型 定义语法与成员变量 三种定义方式(常规、匿名、带变量)。结构体数组的定义与初始化 ,字节对齐规则与大小计算 结构体使用, 成员访问(.和->操作符), 作为函数参数和返回值 结构体指针操作,柔性数组的特殊用法。共用体(联合体) 与结构体的内存区别 共享内存特性 使用场景与注意事项 实践指导。常见陷阱(内存泄漏、访问越界等最佳实践(typedef使用、内存管理等) ,演示了结构体和共用体。

2025-08-04 07:54:22 958

原创 C语言-指针

【摘要】本文系统介绍了C语言中动态内存分配相关函数的使用方法。重点讲解了malloc、calloc、realloc和free四个核心函数,包括函数原型、参数说明、返回值及使用注意事项。malloc分配未初始化内存,calloc分配并初始化内存为0,realloc可调整已分配内存大小,free用于释放内存。文章还详细说明了内存操作相关函数,包括memset(内存填充)、memcpy/memmove(内存拷贝)、memcmp(内存比较)和memchr/memrchr(内存查询)等。

2025-07-31 19:30:18 2164

原创 C语言-指针

本文系统讲解了C语言指针的核心概念和应用。首先介绍了二级指针及多重指针的概念,通过代码示例演示了其解引用方式。重点分析了指针常量和常量指针的区别,以及野指针、空指针等常见问题的防范措施。详细阐述了void*指针的通用特性及使用场景。最后深入讲解了C程序内存布局,包括栈、堆、数据段和代码段的特点及存储内容,静态数据的存储机制,为理解指针操作和内存管理提供了理论基础。全文通过丰富示例代码,帮助读者掌握指针这一C语言核心特性的正确使用方法。

2025-07-30 19:32:59 1080

原创 C语言-函数指针

摘要: 函数指针是指向函数入口地址的指针变量,其定义格式为返回类型(*指针名)(形参列表)。函数指针通过存储函数地址实现间接调用,可作为形参实现回调函数机制,将调用逻辑与被调用函数解耦。二级指针用于存储指针变量的地址,需两次解引用访问数据,常与指针数组配合使用(如char**处理字符串数组)。

2025-07-29 22:43:05 801

原创 C语言-指针

本文主要介绍了C语言中指针与数组的相关概念和应用。首先区分了变量指针、指针变量、数组指针和指针数组的概念及区别,重点讲解了数组指针的操作方法,包括一维和二维数组的遍历。随后详细阐述了指针数组的特点和使用场景,并与数组指针进行了对比分析。文章还探讨了字符数组与字符指针的区别与联系,以及如何作为函数参数传递字符串。最后介绍了指针函数的概念及其在实践中的应用,如通过学号查询学生成绩的案例。文中提供了大量代码示例,帮助理解指针在数组操作、字符串处理和函数返回中的应用技巧。

2025-07-28 20:39:16 1072

原创 C语言-指针

指针是内存地址的别名,用于寻址操作。内存被划分为字节单元,每个单元有唯一地址。变量根据类型占据不同字节数,其基地址(首地址)是最小编号的内存单元地址。指针变量存储地址值,通过解引用符 * 间接访问数据,而取地址符 & 获取变量的基地址。32/64位系统中指针分别占4/8字节,地址用16进制表示。指针需与指向变量类型匹配,支持初始化、赋值及间接修改数据。示例演示了指针交换变量地址与值的两种方式,体现直接/间接访问的差异。

2025-07-24 18:57:42 1228

原创 C语言-函数

本文主要讲解了C语言中函数嵌套调用、递归调用、数组参数传递以及变量作用域与存储类型等核心概念。重点内容包括:1. 函数嵌套调用允许但不允许嵌套定义,通过素数判断、数组查找等案例展示了嵌套调用的实际应用;2. 递归调用的原理与实现,详细解析了递归底层通过栈帧实现的机制,以及阶乘计算等递归案例;3. 数组作为函数参数的地址传递特性,强调必须传递数组长度以防止越界;4. 变量的作用域(全局/局部变量)和存储类型(auto/static/extern/register),分析了各类变量的生命周期和访问范围。

2025-07-23 17:43:27 1015

原创 C语言--函数

本文介绍了C语言函数的基本概念、分类、定义与调用方法。主要内容包括:1. 函数的定义与优点,包括代码复用、结构化程序设计思想;2. 函数分类(按来源、参数、返回值等);3. 函数定义的语法格式,包括返回类型、函数名、形参列表;4. 形参与实参的区别及值传递机制;5. 函数返回值特性及类型转换规则;6. 函数调用方式及声明要求;7. 底层工作原理,包括变量存储机制和函数调用栈帧管理。文章通过多个示例详细说明了函数的使用场景和注意事项,并强调了C语言中参数传递和返回值处理的特性。

2025-07-22 17:32:04 590

原创 数组习题及答案

本文介绍了多个C语言数组编程练习题,包括一维数组和二维数组的基本操作。主要内容有:1)利用冒泡排序对数列进行排序;2)计算某日期是该年第几天;3)求数列的最大值、最小值和平均值;4)判断字符串是否为回文;5)在数组中查找指定元素;6)处理学员成绩数据;7)二维数组的查找、求平均值、极值等操作;8)计算矩阵对角线元素和;9)寻找电影院礼包位置;10)字符串反转和回文判断。这些练习涵盖了数组的基本应用,包括排序、查找、统计和字符串处理等常见操作。

2025-07-21 20:30:43 714

原创 学生成绩管理系统

该程序实现了一个学生成绩管理系统,主要功能包括:1)添加学生信息(学号、姓名及3门课程成绩);2)显示所有学生信息;3)查询指定学生平均分;4)查找各科最高分学生。系统采用数组存储数据,支持最多50名学生,具有输入验证和错误处理功能。程序结构包含主菜单界面和功能模块,通过全局变量维护学生数据,主要展示了基础的C语言编程技巧,包括数组操作、字符串处理、输入输出控制等。

2025-07-21 20:29:27 109

原创 C语言-字符串数组

本文介绍了C语言中字符串的基本操作,包括输入输出函数和常用字符串处理函数。主要知识点包括:1.字符串输入函数scanf()、fgets()和已废弃的gets()的区别;2.字符串输出函数printf()、fputs()和puts()的使用;3.字符串处理函数strcat()、strcpy()、strcmp()和strlen()的功能及用法;4.通过两个示例程序演示了字符串统计和比较的应用。

2025-07-21 20:28:44 321

原创 C语言-数组

本文介绍了C语言数组的基本概念和使用方法。主要内容包括:数组的定义、初始化、访问方式,以及一维数组的实际应用。文章详细讲解了如何声明数组、通过下标访问元素、数组初始化的多种方式(包括部分初始化和自动分配大小),并提供了斐波那契数列和计算日期天数的具体示例。最后重点介绍了冒泡排序算法,包括其排序思想、实现步骤和完整代码示例,以及如何实现升序和降序排列。文章还提及了数组的默认值问题和不同标准下数组容量的定义方式。

2025-07-17 17:19:49 2000

原创 C语言-分支习题及解析

本文展示了多个C语言编程实例,涵盖了基础算法和数学计算:(1)计算奇数和的循环结构;(2)分数序列求和;(3)交替符号级数计算;(4)阶乘运算;(5)圆面积计算;(6)数组正数统计;(7)7的倍数筛选;(8)九九乘法表;(9)百钱买百鸡问题;(10)猜拳游戏实现。这些示例演示了循环、条件判断、数组处理等核心编程技巧,其中猜拳游戏还包含随机数生成和用户交互设计。每个程序都包含完整的输入输出处理,可直接运行验证结果。

2025-07-16 19:49:55 450

原创 C语言-循环

C语言中break和continue的作用:break用于立即终止当前循环或switch语句,只能跳出一层循环结构;continue则跳过当前循环剩余语句,直接进入下一次循环。两者都仅作用于最近的单层循环。在嵌套循环中,可通过自定义标志位配合break实现多层跳出。示例展示了break在考试及格时终止循环,以及continue在计算偶数和时跳过奇数的应用场景。

2025-07-16 19:46:23 304

原创 C语言-循环结构

本文介绍了C语言中分支结构和循环结构的基本用法。分支结构部分演示了if-else和三目运算符判断奇偶数的方法。循环结构详细讲解了while、for和do-while三种循环的实现方式,包括循环三要素(初始化、条件判断、变量更新)和典型应用场景(累加、阶乘、水仙花数等)。文章还展示了循环嵌套实现九九乘法表和素数判断的实例,并比较了不同循环的特点:while和for先判断后执行,do-while先执行后判断。最后指出goto语句虽可用但应避免使用,提倡使用结构化编程方法。

2025-07-15 19:57:56 1004

原创 C语言-分支习题

C语言-分支简单习题及答案

2025-07-15 19:52:14 853

原创 C语言-分支结构

本文详细介绍了C语言中的流程控制和数据输入输出格式控制。主要内容包括:1. 整型数据输入输出的格式说明符(十进制%d、八进制%o、十六进制%x)及其应用场景;2. 浮点型数据输入输出的格式说明符(%f、%e、%lf)及其特点;3. 输入数据时的格式控制技巧,包括列数截取、跳过指定列数等;4. 分支结构的实现方式,包括if语句、if-else语句、多分支if-else if结构,以及switch-case结构的用法和注意事项;5. 逻辑运算符和关系运算符的优先级规则及其在条件判断中的应用。

2025-07-14 22:21:44 684

原创 C语言--各种运算符

摘要:C语言的数值型数据(整型、浮点型、字符型)可以进行混合运算,编译器会自动进行隐式类型转换,将低等级类型提升为高等级类型。运算规则包括算术、关系、逻辑、位运算等,并涉及运算符优先级和结合性。赋值运算符执行类型转换时可能丢失精度。自增/自减运算符(++/--)有前置和后置的区别,影响运算顺序。逗号表达式按顺序求值并取最后一个表达式的结果。浮点数比较需用差值法避免精度误差。位运算直接操作二进制位,适用于底层开发。注意避免未定义行为(如复杂表达式中的多次自增)和链式比较的逻辑错误。

2025-07-10 19:14:04 1174

原创 C语言(进阶)

如系统提供的函数名sim,printf,main,scanf等以及预处理指令include,define等。C语言中有12个预处理指令:

2025-07-09 20:12:14 785

原创 C语言基础

需要借助预处理指令: #define。

2025-07-08 19:39:59 1088

原创 Linux与网络

说明: 我们每一个外设在接入Linux系统的时候,Linux系统会为每一个外部设备准备一个映 射文件,这个映射文件就存放在/dev目录。如果我们想要访问这个外设(存储外设),我 们就需要访问/dev下对应的映射文件(设备文件),或这个根据文件系统将外设挂载到我 们指定的挂载点,这样我们就可以正常访问这个外设。查看所有磁盘列表,包括Linux自身 + 外部存储设备(查询所有可挂载的文件系统, 对应的文件系统会在/dev下产生一个对应的设备文件)-h:以人们容易阅读的GB,MB,KB等格式显示,最常见的选项。

2025-07-07 17:25:53 1078

原创 Linux--vim编译器(进阶)

n1,n2 copy dn:复制n1-n2行数据粘贴至dn行,例:3,14 copy 2,从第3行开始拷贝至第14行,粘贴至第2行的下一行(末行模式):set noic:查找时区分大小写,查询前设置(默认忽略大小写),例:f/F,匹配到f/F(末行模式):set ic:查找时忽略大小写,查询前设置(默认忽略大小写),例:f/F,匹配到f+F(末行模式):n1,n2d:删除n1~n2行,如:1,12d:表示删除1-12行(末行模式):n:移动到第n行,例: :6:移动到第6行(末行模式下)

2025-07-07 11:12:02 722

原创 Linux的通配符,权限,压缩解压

gzip和bzip2的区别:gzip可以绕过目录,递归压缩文件;bzip2不能绕过目录压缩文件与gzip相比,bzip2有更高的压缩效率这两者不能混合使用,主要通过压缩文件扩展名区别。

2025-07-05 05:00:00 886

原创 Linux的权限管理

1.计算机通过用户名和密码识别用户2.Linux中新建用户,设置密码3.系统中有一个root,被称为超级用户,一般默认存在,拥有最高权限4.用户组,将几个用户归在一起,其中用户有相同的用户组权限。

2025-07-04 06:00:00 817

原创 Linux

mnt: 用于系统文件系统的挂载目录,举例:/mnt/hgfs用于挂载共享目录。-f 可以强制删除文件或目录,无需确认,但需要谨慎,删除无法数据恢复。快速查找文件或目录,从数据库中查看,精度低,性能高,速度快。-r:递归复制,复制目录中的所以内容,包括子目录和文件。创建新的文件,如何文件已经存在就修改其访问和访问时间。搜索文件内容,在文件中查找指定的字符序列(字符串)查找文件或目录(递归查找),精度高,性能低,速度慢。-i:有相同的目录和文件,会出现交互提示。删除目录,-r递归删除,可2空可非空。

2025-07-03 16:03:43 242

原创 linux终端快捷键

以下是一些比较常用的快捷键,可以帮助大家在Linux的学习中更加方便。

2025-07-02 08:35:43 288

空空如也

空空如也

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

TA关注的人

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