自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言函数调用全解析

函数调用分为值传递和引用传递。栈帧管理函数的调用和返回。函数返回值通过return语句传递。递归调用需要注意递归终止条件,否则会导致栈溢出。函数指针提供了灵活的函数调用方式,可以实现动态函数调用。这些是C语言中函数调用的基础知识。希望对你有帮助!

2025-01-20 20:58:07 2795

原创 linux系统编程&&操作目录<dirent.h>

本文摘要:文章系统介绍了目录操作的核心概念和常用方法,包括目录的创建、遍历、删除等操作,以及硬链接和软链接的区别。目录操作涉及多种编程接口,如C语言的mkdir()和Python的os.makedirs(),需注意权限和路径格式问题。硬链接和软链接在本质、Inode号、跨文件系统支持等方面存在显著差异,适用于不同场景。文章还详细列举了相关函数的使用方法和注意事项,为文件系统操作提供了实用参考。

2026-02-10 09:35:38 938

原创 linux系统编程&&文件IO

本文摘要: 文章系统介绍了Linux文件I/O操作,包括标准I/O库和系统调用的对比。重点讲解了缓存设计原理(行缓存、全缓存、不缓存)及其应用场景,详细说明open()、close()、read()、write()等系统调用的参数及返回值。同时分析了lseek()函数的文件定位功能,以及标准I/O与文件I/O转换函数fdopen()和fileno()的使用方法。文章对比了标准I/O(功能丰富但安全性较低)和系统调用(简单安全但功能有限)的优缺点,为开发者选择合适I/O方案提供参考。

2026-02-10 08:45:00 400

原创 linux系统编程&&标准IO

本文摘要:Linux系统将各类资源抽象为文件(普通文件、目录、设备文件等),通过标准I/O库实现对文件的操作。标准I/O提供了缓冲机制和系统调用封装,提高了I/O效率。文章详细介绍了文件操作的基本流程:使用fopen打开文件(支持r/w/a等多种模式),通过fgetc/fputc、fgets/fputs、fread/fwrite等函数进行字符/字符串/二进制数据读写,利用fseek/ftell进行文件定位,最后用fclose关闭文件。这些标准I/O函数具有跨平台特性,但需要注意文件描述符和偏移量的管理。文中

2026-02-09 09:20:09 820

原创 树与二叉树&&哈希表:数据结构核心解析

本文系统介绍了树与二叉树的基本概念。树是由结点组成的层次结构,包括根结点、子树等要素,具有度、层次等术语。二叉树是每个结点最多有两个子树的特殊树结构,包含满二叉树、完全二叉树等类型,具有n₀=n₂+1等重要性质。文章详细阐述了四种遍历方式(前序、中序、后序、层序)及其实现原理,并提供了C语言存储结构示例。树结构在计算机科学中应用广泛,二叉树因其有序性和存储效率成为重要数据结构基础,其遍历方法和结构特性为算法设计提供了关键工具。

2026-02-06 09:34:00 701

原创 顺序队列&链式队列常见的基本操作

本文介绍了两种队列实现方式:顺序队列和链式队列。顺序队列使用数组存储,具有固定容量和O(1)操作时间,但存在"假溢出"问题,可通过循环队列解决。链式队列基于链表实现,支持动态扩容,无固定容量限制,但存在额外指针开销。两种队列都遵循FIFO原则,适用于任务调度、BFS算法等场景。顺序队列适合元素数量固定的高效处理,链式队列则更适合元素数量不确定或变化大的情况。文章还提供了两种队列的C语言实现代码示例,展示了基本操作的具体实现方法。

2026-02-06 08:45:00 654

原创 顺序栈&链式栈常见的基本操作

本文摘要:顺序栈和链式栈是栈的两种主要实现方式。顺序栈使用数组存储,通过栈顶指针操作数据,具有结构简单、操作高效的特点,但容量固定。链式栈采用链表结构,栈顶位于链表头部,支持动态扩容且无栈满限制,但存储开销较大。两种实现各有优缺点:顺序栈适合确定容量的高性能场景,链式栈则适用于元素数量变化大的情况。文中详细介绍了两种栈的数据结构定义、核心操作(创建、入栈、出栈等)的实现逻辑,并提供了完整的C语言代码示例,是理解栈数据结构的实用参考资料。

2026-02-05 08:45:00 1451

原创 双向链表与循环链表基础操作&进阶操作

本文介绍了双向链表的基本操作实现。双向链表每个节点包含数据域、前驱和后继指针,支持双向遍历但需要更多内存。文章详细讲解了15种核心操作:1.创建链表(初始化头节点)2.头插/尾插3.判断空链表4.双向遍历打印5.计算长度6.查找节点7.修改值8.头删/尾删9.指定位置删除10.销毁链表11.查找中间节点12.查找倒数第K个节点。每个操作都提供了清晰的C语言实现代码,包括必要的空指针检查和内存管理,涵盖了双向链表的主要功能需求。

2026-02-04 09:14:27 366

原创 Makefile入门指南:高效编译的秘诀

摘要:Makefile是用于定义程序编译规则的文件,通过make命令解析执行。它能够简化编译流程,提高效率,自动判断需要重新编译的文件。Makefile的基本语法包含目标、依赖文件和命令列表。变量(自定义、环境、预定义变量)的使用使Makefile更具通用性。预定义变量如$@、$^等可简化编写。通过假想目标(如clean)可实现特定功能。示例展示了从简单到复杂的Makefile编写过程,逐步引入变量优化,最终实现计算器程序的编译管理。

2026-02-03 09:17:09 804

原创 链表的进阶操作

本文介绍了链表操作的几种常见算法实现。1. 查找中间节点:使用快慢指针法,快指针每次移动两步,慢指针每次移动一步,当快指针到达末尾时慢指针指向中间节点。2. 查找倒数第K个节点:使用双指针法,快指针先移动K步,然后两指针同步移动直到快指针到达末尾。3. 判断链表是否有环:采用Floyd判圈算法,快慢指针相遇则存在环。4. 排序算法:包括选择排序(遍历查找最小值节点并交换数据)、冒泡排序(相邻节点比较交换)和插入排序(将节点插入已排序部分的合适位置)。这些算法均考虑了链表特性,如无法随机访问、需要指针操作等,

2026-02-02 11:45:40 1150

原创 数据结构三要素解析 && 链表的12个基础操作(代码详解)

数据结构是研究数据元素间关系的学科,包含三大要素:逻辑结构、物理结构和算法。逻辑结构分为集合、线性、树和图四种类型;物理结构包括顺序、链式、索引和散列四种存储方式。算法具有输入输出、有穷性等特性,其效率通过时间/空间复杂度衡量。文中以线性表为例,详细介绍了顺序表(数组)和链表(链式存储)的实现,包括创建、插入、删除、查找等基本操作的C语言代码示例,展示了数据结构与算法的紧密联系。

2026-01-30 14:22:02 538

原创 C语言调试权威指南:GDB (GNU Debugger)

写作业/刚写完代码➡模式 A (GDB 直接运行)。最快,无需配置。程序莫名其妙偶尔挂/服务器后台挂➡模式 B (Core 文件)。配置好 ulimit,坐等它挂,然后分析尸体。

2026-01-29 09:23:45 557

原创 指针操作与数组排序实战解析

const char *p const 此时是限定基类型的 --表示将基类型限定为只读。准确说,是限定了通过 *p 的方式 访问到的基类型为只读。const char * p const -- 限定为只读const 离谁近,就限定谁。char * const p 限定p为只读,表示不能修改p中值,不能修改p的指向。p不能被修改 *p不能被修改。char const * p const 限定的是基类型。

2025-01-23 20:39:51 332

原创 C语言指针全解析:从入门到精通2

指针是 C 语言中的一种特殊数据类型,它用于存储变量的内存地址。指针本质上保存的是内存单元的编号,允许程序通过该地址间接访问和操作存储在该位置的数据。2. 指针的定义指针的定义格式:基类型:表示指针所指向的目标数据的类型。:指针变量的标记符号,表示该变量是指针类型。指针变量名:指针的名称,遵循标识符的命名规则。示例:3. 指针的解引用(Dereferencing)解引用操作通过指针获取指向数据的值,使用 操作符。步骤: 获取指针 p 中存储的地址(即 a 的

2025-01-22 21:52:54 810

原创 C语言指针:内存操作的艺术

指针是C语言中强大的工具,可以提高程序的灵活性和效率。但同时,由于指针操作直接涉及内存地址,稍有不慎可能会导致程序崩溃。因此,正确理解指针的概念、操作和应用场景是掌握C语言的关键。

2025-01-22 21:39:32 681

原创 C语言经典算法实战:从数组到递归

【代码】虢薪笔记8——函数练习。

2025-01-21 20:16:56 287

原创 数组与排序:编程入门必备技能

本文介绍了C语言中数组的基本概念和使用方法。主要内容包括:1)数组定义与分类,分为一维和二维数组;2)数组内存空间的连续性、有序性和类型单一性特点;3)三种排序算法(选择、冒泡、插入)的实现及时间复杂度分析;4)二维数组的本质及访问方式;5)字符型一维数组与字符串处理,包括常用字符串函数(gets、puts、strlen、strcpy、strcat)的使用。通过代码示例详细说明了数组的定义、初始化、访问以及常见操作,为C语言数组编程提供了基础指导。

2025-01-17 21:06:45 673

原创 C语言流程控制:掌握选择与循环

本文介绍了C语言中的流程控制结构,主要包括选择结构和循环结构。在选择结构中,详细讲解了关系运算符、逻辑运算符、if语句的三种形式(单分支、双分支、多分支)、条件运算符和switch语句的使用方法,并给出了多个示例程序。在循环结构中,重点阐述了for、while和do-while三种循环语句的语法和语义,比较了它们的区别,并说明了break和continue语句的作用。文章通过具体代码示例(如求最大值、成绩转换、闰年判断等)帮助理解各种控制结构的使用场景。最后总结了不同循环结构的适用情况:for适用于明确循环

2025-01-16 21:53:49 587

原创 C语言输入输出函数详解

C语言中是以分号作为语句结束标志。主要分为:控制语句、函数调用语句 、表达式语句、空语句 、复合语句。

2025-01-16 01:00:00 1694

原创 C语言运算符详解与实战技巧

1、隐式类型转换1.数据类型自动升级:在表达式中,不同类型的数值进行混合运算时,低类型数据会自动转换为高类型数据,以避免数据丢失。若存在unsigned类型,可能会优先转换为unsigned2.注意事项。

2025-01-15 01:00:00 2071

原创 编程入门:掌握数据类型与语法基础

浮点型主要用于处理带有小数的数值,分为float和double两种类型。浮点数的存储遵循 IEEE 754 标准,通过二进制存储方式实现。在选择数据类型时需要根据精度和存储需求权衡,避免不必要的精度损失。

2025-01-13 22:30:28 1056

原创 Ubuntu与VMware:虚拟化开发最强组合

Linux 终端是操作系统的核心工具,尤其在服务器管理、开发和运维中占据不可替代的地位。它不仅是简单的命令输入工具,更是执行复杂任务和自动化操作的关键手段。

2025-01-13 10:29:19 641 1

空空如也

空空如也

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

TA关注的人

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