
C语言篇
文章平均质量分 90
我想吃余
我不知道后面的路会有多艰难,但我知道我会不停地走下去。
展开
-
【初探数据结构】线性表————链表(一)(单链表的实现)
链表是一种物理存储结构非连续、非顺序的线性数据结构。与数组不同,链表的元素通过指针链接形成逻辑上的顺序关系。每个节点包含两部分:链表的优势:每个节点都是一个结构体,这个结构体包含2个(单链表)或者3个成员(双链表)。指针域:指向下一个节点的指针:指向上一个节点的指针数据域:存储数据各个节点通过指针相互链接,构成了链表链表一共有8种这三个特性自由组合,就组成了8种链表我们主要研究这两种链表:这两种链表吃透后,剩余的也就自然而然的学会了。头文件编写:SList.h插入节点尾插原创 2025-03-04 16:59:54 · 861 阅读 · 0 评论 -
高阶C语言|程序编译与预处理:从源代码到可执行的奥秘
/ 输出当前文件和行号理解编译与预处理机制,能帮助开发者写出高效、可维护的代码。掌握宏的使用技巧、避免常见陷阱,是进阶C语言编程的必经之路。推荐阅读《程序员的自我修养》和《高质量C/C++编程指南》,深入探索底层原理。参考书籍《程序员的自我修养》简明VIM教程。原创 2025-02-20 09:42:55 · 806 阅读 · 5 评论 -
高阶C语言|文件操作——你不知道的文件小秘密
文件操作的世界其实并没有你想象的那么复杂。只要掌握了文件打开、读写、关闭的基本技巧,再加上对fseek和rewind这些“小工具”的灵活运用,你就能轻松自如地管理你的文件了。所以,下次当你面对文件时,不要再紧张了!只要记得好好地与它互动,文件也会变成你忠实的小伙伴,陪你一起完成各种任务,轻松搞定所有挑战。原创 2025-02-17 14:43:53 · 1551 阅读 · 0 评论 -
高阶C语言|动态内存管理
动态内存管理为 C/C++ 程序提供了极大的灵活性,可以帮助开发者根据程序的需要动态分配和释放内存。然而,动态内存管理的错误使用会导致许多问题,如内存泄漏、悬挂指针、内存越界等。因此,开发者需要小心谨慎,确保每一块动态分配的内存都被正确管理。掌握动态内存管理的技巧将有助于提高程序的性能和可靠性。希望这篇博客能够帮助你理解和掌握 C/C++ 中的动态内存管理。如果你有任何问题,欢迎留言讨论!原创 2025-02-13 12:41:45 · 1303 阅读 · 0 评论 -
高阶C语言|枚举与联合
在C/C++语言中,枚举(enum) 和 联合(union) 是两种重要的数据类型,它们在不同的应用场景下发挥着独特的作用。枚举适用于定义一组有限的取值,提高代码的可读性和安全性,而联合则用于多个变量共享存储空间,节省内存。在本篇文章中,我们将详细探讨枚举和联合的概念、定义方式、优缺点以及使用示例。原创 2025-02-10 06:00:00 · 2269 阅读 · 32 评论 -
高阶C语言|和结构体与位段的邂逅之旅
本文探索了高阶C语言的核心特性,并深入分析了结构体和位段在C语言中的应用与交互。首先,阐述了结构体作为C语言中数据组织的重要方式,它能够有效地将不同类型的数据组合在一起,适应多样化的程序设计需求。接着,分析了位段作为结构体中的一个高级特性,如何通过控制数据存储空间,实现高效的内存使用和精确的数据表示。通过实例展示了结构体与位段结合使用的场景,重点讨论了如何在不同的硬件平台和操作环境下,利用这些特性优化代码和提高程序的执行效率。最后,探讨了结构体与位段在实际开发中的应用价值,特别是在嵌入式系统和网络协议设计中原创 2025-02-07 16:04:32 · 1583 阅读 · 6 评论 -
高阶C语言|通讯录管理系统(详解+完整代码)
在实际开发中,将不同功能封装到不同的源文件中是很常见的做法,可以有效提高代码的可读性和可维护性。每次添加一个联系人,我们都会提示用户输入联系人姓名、年龄、性别、电话和地址,并将其存储到。在这个文件中,我们将测试所有功能,用户可以选择相应的操作,程序会根据用户输入调用不同的函数。结构体,包含了一个存储联系人信息的数组和当前已经存储的联系人个数。每个联系人信息是一个。首先,我们需要一个初始化函数来清空通讯录,并将联系人数量设置为 0。在这个文件中,我们实现了通讯录的具体功能,包括联系人信息的增删改查、排序等。原创 2025-02-03 19:16:55 · 1264 阅读 · 16 评论 -
高阶C语言|深入理解字符串函数和内存函数
在C语言中,字符和字符串是常用的数据类型。然而,C语言并没有专门的字符串类型,所有字符串都是通过字符数组或字符串常量来表示。为了处理这些字符串,C语言提供了许多强大的库函数。本文将详细介绍这些常用的字符和字符串处理函数,以及它们的使用方法和注意事项。原创 2025-01-27 20:13:05 · 2090 阅读 · 1 评论 -
高阶C语言|库函数qsort的使用以及用冒泡排序实现qsort的功能详解
在编程中,排序算法算是我们的老盆友了,但是你是否认识qsort的呢?在本文中,我们将深入探讨qsort函数的使用,并通过实现冒泡排序来模拟qsort的功能,比较两者的不同之处。qsort冒泡排序是一种简单的排序算法,它通过重复地遍历待排序的数组,比较每对相邻元素,并交换它们的位置,如果它们的顺序不正确。这个过程会持续进行,直到没有任何元素需要交换为止。虽然qsort和冒泡排序都能实现数组的排序功能,但它们各自的效率和适用场景差异显著。qsort。原创 2025-01-16 10:48:42 · 1487 阅读 · 23 评论 -
高阶C语言|数组名的深度解析(数组名结合sizeof与strlen的详解)
在C语言中,数组和指针是两大基础知识点,理解它们的内在联系对于编写高效的代码至关重要。尤其是在面试过程中,数组和指针相关的题目经常出现在笔试和面试中。本文将通过详细的例子和解析,帮助你更好地理解数组名的各种含义。sizeof(数组名):计算整个数组的大小。&数组名:表示整个数组的地址。数组名:在大多数情况下,表示数组首元素的地址,类似指针。strlen:用于计算字符串的长度,但仅适用于字符数组或指向字符串的指针。原创 2025-01-24 21:09:00 · 1941 阅读 · 29 评论 -
高阶C语言|探索指针的根源之目(进阶指针)
C语言的指针被视为一项强大但复杂的工具,它允许程序直接操作内存,提高程序的灵活性和效率。虽然指针的基础用法很多人已经掌握,但更深入的理解能够帮助开发者解决更复杂的编程问题。本文将详细探讨C语言中一些进阶的指针概念,包括字符指针、数组指针、指针数组、函数指针、指向函数指针数组的指针等,并通过示例深入讲解它们的用法和应用场景。原创 2025-01-13 16:44:27 · 7164 阅读 · 28 评论 -
高阶C语言|深度剖析数据在内存中的存储
在计算机程序中,数据类型不仅决定了变量存储数据的方式,还决定了如何高效地处理这些数据。每种数据类型都有其特定的内存分配规则、范围和使用场景。理解数据类型的基本分类是学习内存存储的第一步。通过对数据类型、整数和浮点数在内存中存储方式的深入理解,可以更清楚地看到计算机如何高效地处理不同类型的数据。掌握补码、大端字节序、浮点数表示等基本概念,将有助于我们在编程中避免潜在的错误和性能瓶颈。原创 2024-12-27 17:09:25 · 2133 阅读 · 23 评论 -
初探C语言|C语言中有哪些操作符呢?
本篇文章将深入探讨 C 语言中的各种操作符,包括算术操作符、移位操作符、位操作符等,帮助大家更好地理解和使用这些操作符。原创 2024-12-26 15:44:25 · 1889 阅读 · 0 评论 -
初探C语言|一篇文章让你拿捏指针(初阶指针)
本文将详细介绍C语言中的指针基本概念,通过本文,读者能够更深入地理解指针的工作原理及其应用场景,进而在C语言的编程中游刃有余。指针是一个存储内存地址的变量。它指向某个变量在内存中的位置。int *p;// 未初始化指针*p = 20;// 使用未初始化的指针,结果是未定义行为return 0;二级指针()是指指向另一个指针的指针。简单来说,二级指针存储的是一级指针的地址。通过二级指针,可以间接地访问一级指针指向的内存地址,从而实现多级间接访问。这里,type是指针指向的变量类型,是二级指针的名称。原创 2024-12-19 12:03:09 · 2067 阅读 · 11 评论 -
初探C语言|实现扫雷游戏的底层逻辑
扫雷游戏是一款经典的单人益智游戏,玩家的目标是在一个由许多格子组成的方格中寻找隐藏的地雷。通过标记地雷位置并避免点击地雷,玩家可以逐步揭示无雷区域,最终完成游戏。本文将介绍如何使用C语言实现一个简单的扫雷游戏。原创 2024-12-17 14:55:51 · 1406 阅读 · 9 评论 -
初探C语言|实现井字棋游戏(超详解)
井字棋(Tic-Tac-Toe)是一个经典的两人对战游戏,简单而富有挑战性。你可以轻松地在纸上画出棋盘,开始游戏,但用代码实现它却能带来不一样的乐趣和思考。今天,我们将用 C 语言一步一步实现一个井字棋游戏,并介绍如何优化和改进代码。这个井字棋游戏的实现包含了游戏的基本功能,如玩家输入、电脑随机下棋、判断胜负等。然而,这个游戏的电脑对手策略非常简单,完全依赖于随机选择空位来下棋。原创 2024-12-09 23:34:28 · 1905 阅读 · 5 评论 -
初探C语言|如何在有序数列中查找一个数呢?二分查找的拿手活!
二分查找(Binary Search)是一种经典的查找算法又称折半查找法,主要用于在有序数组中高效地查找目标值。其时间复杂度为OlognO(\log n)Ologn,因此在大规模数据中非常实用。本文将结合一个 C 语言实现的代码,详细介绍二分查找的原理、代码实现。二分法的思想也常用于其他问题,如查找有序数组中的特定值或优化搜索空间问题。建议大家去深度学习。原创 2024-12-05 01:01:25 · 1381 阅读 · 4 评论 -
初探C语言|浅谈函数的递归
程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的。一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略。只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的主要思考方式在于:把大事化小。原创 2024-12-06 19:49:20 · 1024 阅读 · 5 评论 -
初探C语言|手把手带你手撕猜数字游戏
作为一名编程初学者,最令人兴奋的时刻莫过于实现自己的第一个完整项目。今天,我们将一起手撕猜数字游戏,并逐步解析实现过程。这不仅能帮助你巩固 C 语言的基础知识,还能感受到编程的乐趣。原创 2024-12-02 22:23:07 · 641 阅读 · 0 评论