自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态内存管理——malloc、free、calloc、realloc和柔性数组

本文介绍了C语言动态内存分配的相关知识。首先解释了为什么需要动态内存分配,指出传统数组在编译时确定大小、无法灵活调整的局限性。然后详细讲解了malloc和free函数的使用方法,强调内存泄漏的风险。接着介绍了calloc和realloc函数,说明它们与malloc的区别及使用场景。文章还讲解了柔性数组的概念、特点和使用优势。最后总结了C/C++程序内存区域的划分,包括栈区、堆区、数据段和代码段。这些内容为C语言动态内存管理提供了全面的指导。

2026-03-09 22:54:57 362

原创 自定义类型:联合和枚举

本文介绍了C语言中联合体和枚举类型的使用。联合体(共用体)的特点是所有成员共用同一块内存空间,编译器只为最大成员分配空间,可用于节省内存和判断大小端。枚举类型用于列举可能的取值,具有增加代码可读性、类型检查严格等优点。文章详细说明了联合体和枚举的声明方式、大小计算方法以及实际应用场景,并对比了枚举与#define定义常量的区别,强调枚举在类型检查和调试方面的优势。

2026-03-06 22:31:54 380

原创 自定义类型:结构体

本文摘要: 文章系统介绍了C语言结构体的核心知识点:1.结构体声明和变量初始化方法;2.结构体自引用注意事项;3.重点讲解结构体内存对齐规则及其原理(空间换时间);4.推荐结构体传参时使用地址传递;5.详细解析位段的概念、内存分配方式及跨平台问题。特别强调位段虽节省空间但存在严重可移植性问题,使用时需谨慎。全文通过代码示例和内存图示,清晰展示了结构体对齐规则和位段存储机制,对深入理解结构体内存布局具有重要指导意义。

2026-03-06 22:29:36 213

原创 数据在内存中的存储

本文介绍了数据在内存中的存储方式。整数以补码形式存储,便于统一处理符号位和加减运算;浮点数遵循IEEE 754标准,分为符号位、指数位和尾数位三部分存储。文章还解释了大小端字节序的概念及其判断方法:大端模式将数据高位存储在低地址,小端模式则相反。通过代码示例展示了如何检测当前系统的字节序。这些底层存储机制直接影响程序的数据处理效率和跨平台兼容性。

2026-03-04 11:49:47 356

原创 C语言的内存函数

本文介绍了四个内存操作函数的使用及实现:1) memcpy用于内存复制,不支持重叠区域;2) memmove支持重叠内存复制,通过判断源/目标位置决定复制方向;3) memset用于设置内存值;4) memcmp比较内存内容。文章详细分析了memcpy和memmove的区别,提供了模拟实现代码,并通过示例演示了memset和memcmp的具体应用。这些函数都是对内存进行底层操作的重要工具,在字符串处理、数据结构初始化等场景中广泛应用。

2026-03-01 17:01:54 295

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

本文介绍了C语言标准库中常用的字符和字符串处理函数。字符函数部分包含字符分类函数(如islower)和转换函数(如tolower)。字符串函数部分详细讲解了strlen、strcpy、strcat、strcmp等核心函数的使用方法及模拟实现,包括参数要求、功能说明和注意事项。还介绍了更安全的版本strncpy、strncat和strncmp。这些函数都需包含相应头文件,对字符串操作时要注意'\0'结尾、空间大小等关键问题。通过示例代码展示了如何模拟实现这些函数的核心功能。

2026-02-17 13:08:14 610

原创 sizeof与strlen

摘要:本文对比了C语言中sizeof操作符与strlen函数的区别,前者计算内存大小,后者统计字符串长度。同时解析了数组名的三种含义,并通过指针数组的复杂示例展示了多级指针的引用方式。文章最后提供了一个包含四级指针操作的代码实例,用于演示指针运算的实际应用。

2026-02-12 15:17:51 37

原创 深入理解指针Part5——回调函数及应用

本文介绍了回调函数的概念及其应用。回调函数是通过函数指针调用的函数,由外部在特定条件下触发而非直接调用。文章以qsort函数为例,详细讲解了其参数和使用方法,包括对整型数组和结构体数组的排序实现。随后通过模拟实现一个基于冒泡排序的bubble_sort函数,进一步阐释了回调函数的应用机制。文中指出,比较函数cmp_int作为回调函数传入并在排序函数内部被调用,展示了回调函数在实现复杂功能时的独特优势。

2026-02-08 21:01:09 238

原创 深入理解指针Part4——字符、数组与函数指针变量

本文介绍了C语言中几种重要的指针概念及其应用。主要内容包括:1) 字符指针变量,用于指向字符串常量;2) 数组指针变量,指向整个数组而非首元素;3) 二维数组传参本质是传递第一行地址;4) 函数指针变量存储函数地址,可通过typedef简化声明;5) 函数指针数组及其实用案例——转移表在计算器程序中的应用。重点解析了指针与数组、函数的关系,以及如何通过指针高效操作复杂数据结构。

2025-10-14 09:32:06 788

原创 深入理解指针Part3——指针与数组

本文主要探讨了C中指针与数组的核心概念及应用。首先解析了数组名的本质,指出其通常转换为指向首元素的指针,但存在sizeof和&两个例外情况。接着说明如何使用指针访问数组元素,并揭示了一维数组传参时实际传递的是首元素地址的本质。文章还提供了冒泡排序的代码实现,包括优化版本。此外,详细介绍了二级指针的操作和指针数组的概念,最后演示了如何用指针数组模拟二维数组的效果。全文深入浅出地讲解了指针与数组的关系及其实际应用场景。

2025-10-10 18:41:55 1537

原创 深入理解指针Part2——const

constconst。

2025-10-10 10:44:17 277

原创 深入理解指针Part1——C语言

本文系统讲解C语言指针核心概念。通过内存单元编号与指针的等价关系,阐明取地址操作符(&)获取变量地址、指针变量存储地址、解引用操作符(*)访问对象的完整机制。同时从地址总线角度解释不同平台下指针变量大小的差异,为理解指针类型的重要性奠定基础。

2025-10-02 16:49:59 769

原创 操作符题目练习

本文介绍了5个利用位运算解决的实际问题:1) 找出数组中唯一的单身数字;2) 不创建临时变量交换两个整数;3) 统计二进制中1的个数;4) 修改二进制特定位;5) 打印二进制奇偶位;6) 计算两数二进制位差异数。主要运用了异或、与、或、移位等位操作,展示了位运算在解决特定问题时的简洁高效特性,特别是处理二进制相关问题时具有独特优势。

2025-09-09 20:42:29 409

原创 函数递归与题目解析——C语言

递归是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。

2025-09-07 14:24:46 1692

原创 函数题目练习

求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222。喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1。求出0~100000之间的所有“水仙花数”并输出。3+3^3,则153是一个“水仙花数”。打印图像问题,难在找规律。

2025-09-07 11:29:16 268

原创 基于C的扫雷小游戏

本文介绍了经典益智游戏扫雷的控制台实现方案。游戏采用9x9棋盘,随机布置10个雷,通过两个11x11数组分别存储雷区和排查信息,避免边界检测问题。代码采用模块化设计,分为game.h头文件、game.c功能实现和test.c测试逻辑三个部分,实现了初始化棋盘、布雷、排雷等核心功能。文章还提出了后续优化方向,如增加难度选择、区域展开、标记雷点和计时等功能。该实现保留了扫雷的基本玩法逻辑,为后续功能扩展提供了基础框架。

2025-09-05 11:41:48 1606

原创 基于C的二分查找和查月份天数小程序

本文档详细讲解了二分查找和月份天数计算两个经典编程问题,包含算法原理说明、实现思路分析和完整的C语言代码示例,适合编程初学者学习和参考。

2025-09-01 14:44:34 296

原创 数组练习题目

描述KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。输入描述:多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。输出描述:针对每行输入,输出用“*”组成的X形图案。打印图形:找规律描述KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。输入描述:多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。

2025-08-26 13:58:18 339

原创 基于C的猜数字游戏——详解随机数生成原理与技巧

本文通过一个经典的“猜数字”游戏实战案例,深入浅出地解析了C语言中随机数生成的核心机制。文章不仅提供了生成100-200范围内随机数的完整代码实现,更关键的是详细阐述了rand()、srand()和time()函数的原理与协作方式,揭示了“伪随机”背后的种子(Seed)与时间戳概念。最后,总结出了生成任意范围随机数的通用公式 a + rand() % (b - a + 1),为读者理解和应用C语言随机数提供了坚实的理论与实践基础。

2025-08-24 19:55:37 470

原创 基于C的素数计算小程序及优化

本文介绍了质数的定义及其在编程中的实现方法。质数是指大于1且只能被1和自身整除的自然数。文章以C语言为例,展示了如何计算100~200之间的质数,并通过两步优化提高效率。

2025-08-16 17:46:45 301

原创 printf()和scanf()的占位符列举——C语言

本文介绍了C语言中printf()和scanf()函数的常见占位符及用法。

2025-08-13 17:07:15 622

原创 今日之舟[特殊字符]

昨天的河流早已冰封,明天的潮汐尚在远方沉睡。当午后的蝉鸣爬上窗纱,我便把小舟托在掌心,让它载着半块吃剩的曲奇,和窗台那盆绿萝新抽的嫩芽,继续在平静里划出细碎的微光。当过去的锚链沉入海底,未来的海市蜃楼消散在天际,我们终于能在当下的波光里,触摸到生命最本真的质地——那是咖啡凉透前的最后一口醇厚,是书页翻动时扬起的干燥墨香,是此刻,我与这叶小舟共同拥有的,无需言说的温度。纸张边缘还带着昨夜月光的余温,被我折成一叶扁舟的形状——不必雕梁画栋,不必张帆远航,只需保留掌心摩挲过的褶皱,那是此刻心跳的纹路。

2025-08-11 02:42:06 366

原创 基于C的计算BMI(体质指数)小程序

本文展示了一个用C语言编写的BMI计算器程序。该程序通过输入体重(kg)和身高(m),计算BMI值并给出健康评估。

2025-08-10 20:20:03 521

原创 编程基础之——字符与ASCII编码

在键盘上可以敲出各种字符,如:a \ #等,这些符号都称为。(C语言中字符用单引号 ’ 括起来)如同许多商品有国际标准一样,字符也需要有一个统一的编码标准进行规范,其中最权威的是美国国家标准学会(ANSI)出台的标准。C语言中的字符就遵循了ASCII编码方式。以下是128项ASCII码表。

2025-07-28 16:27:27 358

原创 结构体类型的定义及结构体变量的使用

合理的数据类型包括基本数据类型(int,char等)和自定义的数据类型(struct等)。#pointer本身就是一个指针类型,通过它定义的p也是指针类型。该方法无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。(1)先定义结构体类型,再定义结构体变量(推荐使用!(3)typdef+struct+指针 结合使用。(2)定义结构体类型同时定义结构体类型变量。# 结构体指针类型:指向结构体类型的类型。(2)指向结构体的指针变量名->成员名。#typedef 原类型名 新类型名。

2024-09-20 10:39:45 964

空空如也

空空如也

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

TA关注的人

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