自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言实现顺序结构二叉树-堆

欢迎来到HanLop博客的C语言数据结构初阶系列。在这个系列中,我们将深入探讨各种基本的数据结构和算法,帮助您打下坚实的编程基础。在本篇文章中,我们将讲解顺序结构的二叉树,特别是堆(Heap)。堆是一种特殊的完全二叉树,它满足堆属性,即每个节点的值都大于或等于(或小于或等于)其子节点的值。堆在许多算法中起着至关重要的作用,例如优先队列的实现和堆排序。在这篇文章中,我们将介绍堆的基本概念、堆的创建和操作方法,以及其在实际编程中的应用。通过一些实际的代码示例,您将更好地掌握堆在C语言中的实现和应用。

2024-07-24 11:10:06 622 15

原创 C语言-栈和队列

欢迎来到HanLop博客的C语言数据结构初阶系列。在之前的文章中,我们详细介绍了链表及其操作方法。在本篇文章中,我们将深入探讨栈和队列这两种常见的数据结构。栈和队列虽然都是线性数据结构,但它们在数据的存取方式上有着显著的区别。栈是一种后进先出(LIFO, Last In First Out)的数据结构,而队列则是一种先进先出(FIFO, First In First Out)的数据结构。通过理解和掌握这两种数据结构,您将能更有效地管理数据,并为后续更复杂的数据结构和算法的学习打下坚实的基础。让我们一起开始探

2024-07-22 09:43:39 1152 6

原创 C语言-链表

欢迎来到HanLop博客的C语言数据结构初阶系列。在这个系列中,我们将深入探讨各种基本的数据结构和算法,帮助您打下坚实的编程基础。本次我将为你讲解链表。链表是一种线性数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。由于其灵活的内存分配方式,链表在动态数据存储和处理方面有着独特的优势。在本篇文章中,我们将介绍链表的基本概念、链表的创建和操作方法,以及其优缺点。通过一些实际的代码示例,您将更好地掌握链表在C语言中的应用,从而为后续学习其他数据结构打下坚实的基础。

2024-07-17 15:34:39 1121 16

原创 C语言-顺序表

欢迎来到HanLop博客的C语言数据结构初阶系列。在这个系列中,我们将深入探讨各种基本的数据结构和算法,帮助您打下坚实的编程基础。本次我将为你讲解。顺序表(也称为数组)是一种线性表,因其简单易用而广泛应用于各类编程任务中。在本篇文章中,我们将介绍顺序表的基本概念、顺序表的创建和操作方法,以及其优缺点。通过一些实际的代码示例,您将更好地掌握顺序表在C语言中的应用,从而为后续学习其他数据结构打下坚实的基础。

2024-07-11 17:00:24 1498 5

原创 算法复杂度

欢迎来到HanLop博客的C语言数据结构初阶系列。在这个系列中,我们将深入探讨各种基本的数据结构和算法,帮助您打下坚实的编程基础。作为开篇,我们先从算法复杂度这个核心概念讲起。算法复杂度是评估算法效率的关键标准,通过它我们可以定量分析算法的运行时间和所需的额外空间,从而在编写和优化代码时做出明智的选择。本篇文章将带您了解算法复杂度的基本概念、时间复杂度和空间复杂度的定义及其计算方法,并通过一些实际的示例来帮助您更好地掌握这些重要知识。

2024-07-10 21:30:45 1044 8

原创 C语言-预处理详解

在C语言编程中,预处理是一个重要且常被忽视的步骤。它在编译之前对源代码进行处理,执行诸如宏替换、文件包含和条件编译等任务。通过预处理,程序员能够提升代码的可读性、可维护性和可移植性,使得编程更加高效和灵活。在本文中,我们将详细探讨C语言预处理的各种机制和用法,帮助读者深入理解预处理的功能和作用。

2024-07-09 16:09:24 969 4

原创 C语言-编译和链接

通过对C语言编译和链接过程的探讨,我们可以看到,编译器和链接器在程序开发中扮演了重要角色。掌握这些知识,可以帮助我们更有效地解决编译错误和链接错误,优化代码性能,提高开发效率。希望本篇文章能为读者提供有价值的参考,帮助大家在C语言的编程之旅中走得更远。如果你有任何问题或意见,欢迎在评论区留言讨论。

2024-07-08 23:44:01 939 3

原创 C语言-文件操作

文件是存储在计算机存储介质(如硬盘、固态硬盘、光盘等)上的一组数据,它具有特定的格式和结构,用于保存信息。通常我们所接触到的有两种文件:程序文件,数据文件(从文件功能的角度分类).通过本文的学习,我们详细了解了C语言中文件操作的基础知识和实际应用。文件操作不仅限于简单的读写,它还涉及到如何有效地管理内存和磁盘资源,以及如何处理各种异常情况和错误。掌握好文件操作的技能,不仅可以提升我们的编程效率,还能够让我们更加深入地理解计算机系统的底层工作原理。

2024-07-08 18:31:06 1898 4

原创 C语言-动态内存管理

在C语言编程中,动态内存管理是一个至关重要的概念。它不仅涉及到程序如何高效地使用内存资源,还影响到程序的稳定性和性能。通过动态分配内存,程序可以根据运行时的需求灵活地调整内存使用,这对于处理不确定的数据量和实现高效的资源利用尤为重要。在这篇文章中,我们将深入探讨C语言中的动态内存管理机制,了解如何使用标准库函数如 malloc、calloc、realloc 和 free,并讨论一些常见的内存管理陷阱和最佳实践。

2024-07-07 16:55:08 1178 3

原创 自定义类型

在C语言中,自定义类型是构建复杂数据结构的重要工具。通过使用结构体、联合体和枚举,我们可以更直观地表示数据,更高效地管理内存,并且使代码更加清晰和易于维护。在这篇文章中,我们将深入探讨C语言中的自定义类型,理解它们的定义、用法以及实际应用场景,帮助你在编程实践中更好地运用这些强大的工具。

2024-07-05 23:23:40 1045 5

原创 数据在内存中的存储

原码、反码和补码是整数在内存中的三种表示方法,其中补码是最常用的表示法,因其有效解决了符号位引起的复杂性问题,并且便于计算机硬件实现和运算。理解这些概念对于编写高效、正确的C语言程序非常有帮助。希望这些内容能帮助你更好地理解整数在内存中的存储机制。通过本篇博客的学习,我们详细探讨了整数和浮点数在内存中的存储方式,大小端字节序的概念及判断方法。这些基础知识对于编写高效、稳定的程序至关重要,尤其是在处理跨平台数据交换时,理解字节序可以帮助避免许多潜在的错误和问题。

2024-07-03 21:55:48 853 3

原创 C语言内存函数

在C语言编程中,内存操作函数如memcpymemmovememset和memcmp是处理内存数据的基础工具。它们提供了对内存块进行复制、移动、设置和比较的功能,使得程序能够高效地操作大块数据。然而,尽管这些函数看似简单,其底层实现却蕴含着许多巧妙的优化和细节。本篇博客将详细介绍这些内存操作函数的使用方法,并通过模拟实现来剖析它们的内部机制。通过对比不同实现方式的效率和安全性,读者可以更好地理解这些函数的工作原理,避免在实际编程中可能遇到的陷阱和问题。memcpy是一个强大且高效的函数,用于内存复制操作。

2024-07-03 16:50:25 1246 10

原创 字符函数和字符串函数

欢迎来到HanLop博客!在这里,我们致力于探索编程世界的各个角落,为你提供深入浅出的技术文章和实用指南。今天,我们将聚焦于C语言中的字符函数和字符串函数。通过这篇文章,你将学会如何使用C语言提供的标准库函数来操作字符和字符串,从而能够更高效地进行数据处理和文本操作。我们会从基础概念开始,一步步讲解常用的字符函数和字符串函数,并配以实战代码示例,帮助你更好地理解和应用这些函数。希望这篇文章能为你的C语言学习之路提供帮助,开启你在字符和字符串处理领域的新篇章。

2024-07-02 23:57:40 836 5

原创 探索指针(4)-C语言

目录1.回调函数一.回调函数的基本概念二.示例三.详细说明2.qsort使用举例一.qsort 函数原型 二.参数解释三.比较函数3.qsort函数的模拟实现一.代码示例:二.分段讲解代码 回调函数本质上是一种通过函数指针实现的机制。你可以定义一个函数指针,然后将其作为参数传递给另一个函数,当需要时调用该指针所指向的函数。以下是一个简单的示例,展示如何在C语言中使用回调函数。三.详细说明 函数指针类型定义 这里我们定义了一个新的类型 ,它表示一个接收两个 参数并返回 的函数指针。

2024-07-01 23:56:32 325 4

原创 探索指针(3)-C语言

常量字符串是用双引号括起来的字符序列,例如。

2024-07-01 18:39:39 889 4

原创 探索指针(2)-C语言

这是因为,arr此时是一个地址,地址在下×86环境下字节大小为8,而arr[0]是整型,大小为4,所以计算得出为2,我们在传参的过程为了方便,可以将参数写成int arr[]但。这时候,你发现他们三个都是一样的值,因为在这里看不出来,其实&arr是一个数组指针,我们通过+1的方式,可以观察到他们的差别.sizeof(数组名),sizeof中单独放数组名,这里的数组名表示整个数组,计算的是整个数组的大小,&数组名,这里的数组名表示整个数组,取出的是整个数组的地址(整个数组的地址和数组首元素。

2024-06-30 23:43:22 849 3

原创 windows11系统下path环境变量的配置

发现是无法打开的,只有当我们进入QQ.exe所在的路径底下时,我们才能打开。完成以上三步即可在任意路径下打开qq,其他任意软件也是同样的。在运行对话框中输入“cmd”并按下回车键,即可打开命令提示符。那我们有什么办法能够让我们 在任意路径下都能打开qq呢。然后我们想在当前路劲下直接打开QQ这个应用程序。这时候就要配置path环境变量了。组合键,打开运行对话框。

2024-05-28 09:38:31 498 1

原创 探索指针(1)-C语言

指针加上一个整数n会移动指针n个元素位置,具体移动量是n乘以指针类型的大小。指针减去一个整数n会移动指针n个元素位置,具体移动量是n乘以指针类型的大小。指针的加减法主要用于数组操作和遍历内存块。void*const修饰基本数据类型时,变量的值不能被修改。const修饰指针时,可以有多种组合::指向常量的指针,指针指向的值不能被修改。:常量指针,指针本身不能修改指向的地址。:指向常量的常量指针,指针本身和指向的值都不能被修改。

2024-05-28 09:00:39 1248 2

原创 C语言-函数

在C语言中,自定义函数是由开发者自己编写的函数,用于执行特定的操作或逻辑。自定义函数可以帮助代码模块化、提高代码复用性、简化复杂性,并增强代码的可维护性和可读性。返回类型:指定函数返回的值的类型。如果函数不返回值,则使用void。函数名:函数的标识符,遵循C语言的命名规则。参数列表:列出函数接受的参数及其类型。如果没有参数,则留空或使用void。函数体:由大括号{}包围的代码块,包含了函数的操作和逻辑。现在我们自定义一个用来进行加法运算的函数。

2024-04-29 17:38:28 882

原创 探索C语言扫雷游戏的实现

这个数组用做布置雷。我们还需要使用过一个二维数组,用作排查雷,在每排查该坐标时,该数组相应的位置放入字符‘*’,如果排查雷之后就显示周边雷的个数,相应的字符。通过这种方式,函数确保扫雷游戏在每次运行时,地雷的位置都是随机的,增加了游戏的可玩性和 replayability(可重复玩性)。通过这种流程,代码实现了一个简单的扫雷游戏,用户可以通过输入坐标揭示格子,尝试避免地雷,并在游戏结束后获得相应的反馈。在游戏版上输入一个坐标,如果该坐标上有地雷,则游戏结束,如果没有地雷,则会显示他周围地雷的总数。

2024-04-24 12:54:18 989 3

原创 数组详解(初步认识数组)

一维数组在内存中是连续存储的,即数组中的元素在内存中是相邻存储的,依次排列在一起。数组的存储顺序是按照元素的顺序来排列的,即第一个元素存储在数组的起始位置,第二个元素存储在第一个元素的后面,依此类推。它是一组相同类型的变量的集合,这些变量在内存中是连续排列的。因此,数组的存储顺序是按行存储的,每一行的元素是连续的。计算出数组中第一个元素的大小(这个大小和整型的大小相同),然后将数组的总大小除以单个元素的大小,得到数组中元素的个数。的整型数组,要访问第三个元素,可以使用下标为2,因为数组的下标是从0开始的。

2024-04-17 22:59:24 728

原创 分支和循环

循环时,需要小心确保循环体内部的代码能够改变循环条件,否则可能导致无限循环。通常,在循环体内会有一些逻辑来更新循环条件,以控制循环的执行。语句是C语言中的一种跳转语句,它允许程序直接跳转到代码中的标记(label)处,绕过常规的控制流结构,如循环和条件语句。循环是一种常见的循环结构,它在每次循环迭代之前检查一个条件,只有条件为真时才执行循环体。循环的优点之一是循环控制变量的作用范围局限于循环内部,这样可以避免循环结束后变量的污染。循环是一种常见的循环结构,它提供了一种简洁的方式来执行特定次数的循环。

2024-04-11 17:45:03 930

原创 数据类型与++ --运算符

(int b=a -> a+=1)所以b=0 因为a开始的值是0 这个操作结束后a在进行自增 a=1。比如(signed)int的取值范围是:-2,147,483,648 到2,147,483,647。使用强制类型转换,将分子或分母中的一个变为float类型即可完成小数除法。unsigned int的取值范围是 :0 到4,294,967,295。1.++的作用都是在原变量上进行+=1的操作。(c+=1 此时c=1 -> d=c)2.后置++是先使用原来的,后++3.前置++是先++,后使用。

2024-04-07 22:13:23 279

原创 字符串中的‘\0‘

字符串初识:代码实例: 实例分析:类型解释:字符串细节解释:printf函数输出现象解释:

2024-04-07 22:02:50 169

原创 双指针问题

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下对数组进行操作。原地操作代表不开辟新的数组保存非零元素的相对位置。

2024-04-03 02:06:21 108

原创 初识C语言

1、关键字都有特殊意义 2、我们创建自己的标识符不能和关键字重复 3、我们不能自己创建关键字C语言中关键有32个:在后续的学习之中都会使用其上的关键字。

2024-03-30 23:46:15 937

原创 编程旅途的起点

短期目标:重新将c语言巩固一番,保持练习,练习是非常重要的,实践才能具备编程的能力,我是有亲身经历的,过去一年的学习,我总是求进度,抱着看过就是会了的想法,不停地看课赶进度,感觉自己知道了很多,现在回过头看去发现是空中楼阁,因为在上手写代码的过程中,发现代码会有大片的错误,纸上谈兵终究是无用的,所以练习与学习要同步,重新来过一遍要报持练学结合,将每个知识点运用到实践之中。如果想在一个行业中变成佼佼者,必须花费足够长的时间去打磨自己的技术。希望之后的自己能坚定自己的方向,多年之后已经成为自己想成为的那个人。

2024-03-29 02:45:13 326

原创 C语言中的三种循环语句

初学者对于C语言中循环语句的一些了解

2023-01-06 20:59:28 269

空空如也

空空如也

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

TA关注的人

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