C语言
文章平均质量分 82
DDXYcoder
计科大一
GitHub:https://github.com/d2025440304-ops
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
万字解析动态内存从编译到运行
枚举把散落的魔法数字变成有名字的常量,而动态内存让你在程序运行时按需索取堆空间——两者一个管编译时,一个管运行时,都是写出灵活 C 程序的基石。概念枚举宏定义类型检查有(枚举是独立类型)无(纯文本替换)调试信息调试器能看到符号名预处理后符号消失作用域受作用域控制全局有效(除非#undef适用场景一组相关的整数常量单个常量或任意代码片段函数分配初始化释放malloc不初始化freecalloc初始化为 0freerealloc保留旧数据,新空间不初始化free。原创 2026-09-02 19:57:23 · 196 阅读 · 0 评论 -
七大排序算法全解析:从插入到三路快排,手把手带你掌握核心思想与实战陷阱
本文介绍了6种经典排序算法及其实现:插入排序(O(n²),稳定)、希尔排序(O(n^1.3),不稳定)、冒泡排序(O(n²),稳定)、选择排序(O(n²),不稳定)、堆排序(O(nlogn),不稳定)和快速排序。每种算法都包含核心思想、代码实现和关键点分析:如插入排序适合小数据量,希尔是插入的优化版本;堆排序需注意建大根堆;选择排序存在"最大值被换走"的经典陷阱。文中还提供了交换函数和堆调整函数等辅助工具,强调算法选择需综合考虑数据规模、有序度、稳定性等因素,没有绝对最优解。所有实现均采用C语言,注重工程实原创 2026-06-30 17:09:45 · 382 阅读 · 0 评论 -
浮点数与自定义类型:从 IEEE 754 到位段联合体
C语言中,浮点数遵循IEEE 754标准,以符号、指数、尾数三部分存储,与整数视角迥异。结构体成员按对齐规则布局,影响内存占用;位段可节省空间但跨平台风险高,且不可取地址;联合体则共享内存,实现多类型数据的灵活存储。合理运用这些自定义类型,可在性能、空间与可移植性间取得平衡。原创 2026-09-21 21:24:33 · 157 阅读 · 0 评论 -
枚举与动态内存:从「编译时常量」到「运行时空间」
概念枚举宏定义类型检查有(枚举是独立类型)无(纯文本替换)调试信息调试器能看到符号名预处理后符号消失作用域受作用域控制全局有效(除非#undef适用场景一组相关的整数常量单个常量或任意代码片段函数分配初始化释放malloc不初始化freecalloc初始化为 0freerealloc保留旧数据,新空间不初始化free柔性数组指针方案一块连续内存,一次 malloc 一次 free两块内存,两次 malloc 两次 free更好的缓存局部性。原创 2026-09-21 21:21:58 · 194 阅读 · 0 评论 -
qsort 与通用排序:从「只能排 int」到「什么都能排」的进化之路
qsort是C标准库提供的通用排序函数,通过void*泛型指针与函数指针回调实现对任意类型数据的排序。其核心在于:用void*屏蔽类型信息,以size_t传递元素大小,通过比较函数返回值约定(>0、==0、<0)决定排序顺序。结合(a>b)-(a<b)防溢出技巧和逐字节交换,可实现安全高效的通用冒泡排序。该设计体现了“将行为作为参数传递”的策略模式思想,是理解C语言泛型编程的关键。原创 2026-09-21 21:20:19 · 232 阅读 · 0 评论 -
解析预处理与编译的过程
<think>我们需要根据用户要求,生成≤150字的文章摘要。用户提供了一篇关于C语言预处理与编译的文章,要求“根据以下内容,生成≤150字的文章摘要”。我们需要输出摘要,需简洁,不超过150字。注意内容范围,可能包括宏、条件编译、头文件等。需要提炼核心观点。同时,注意用户还附带了很长的内容,但我们只需要摘要。确保内容在150字内。中文。 摘要可以包括:预处理是编译前文本替换,宏不是函数,#include不是导入,#if不是if,关键在于理解替换过程,注意加括号避免优先级问题,条件编译用于控制代码,特殊运算原创 2026-09-03 11:29:22 · 191 阅读 · 0 评论 -
内存函数与数据存储
内容是关于内存函数与数据存储的,重点包括memcpy/memmove/memset、大小端、整型提升等。需要简洁概括核心要点。注意字数限制。我们应提炼主要观点:内存函数按字节操作;memset赋非0值出错因按字节;memmove处理重叠用前后策略;数据存储本质二进制,解读方式(大小端、整型提升)影响结果。输出不超过150字。</think>内存函数按字节操作,memmove用“前前后后”策略处理重叠安全拷贝;memset对int数组赋非0值因逐字节设原创 2026-09-02 19:56:06 · 217 阅读 · 0 评论 -
操作符的深入理解学习并实操
本文摘要: C语言中的位运算是底层高效操作的核心技术,通过补码实现二进制运算。主要内容包括:1) 进制转换基础与整数存储(原码/反码/补码);2) 整形提升规则;3) 移位操作(左移乘2^n、右移除2^n);4) 位操作符(与、或、异或、取反)及其应用;5) 经典算法如异或交换和统计1的个数。特别强调补码运算原理和移位操作的实际效果,通过代码示例演示了进制转换、移位运算和位操作的实际应用。理解这些概念对编写高效底层代码至关重要。(149字)原创 2026-08-06 23:01:22 · 331 阅读 · 6 评论 -
指针的初步进阶与初步拓展
文章摘要:指针进阶与复杂声明解析 本文系统讲解了高级指针概念,包括二级指针、指针数组、数组指针和函数指针的核心原理与区别。关键点包括: 指针的本质:指针进阶的核心在于将指针视为可操作的一等公民,通过地址间接访问复杂数据结构。 二级指针:通过解引用链条(**ppa)实现两层间接访问,本质是"指针的指针"。 指针数组vs数组指针: 指针数组是存储指针的数组(int *arr[]) 数组指针是指向整个数组的指针(int (*p)[n]) 区别关键在运算符优先级和括号使用 函数指针:存储函数入口地址(int (*p原创 2026-08-03 14:59:58 · 331 阅读 · 0 评论 -
从地址到自由:C语言指针核心概念深度复盘与实战指南
本文系统梳理了C语言指针的核心概念与应用技巧。主要内容包括: 指针本质:存放内存地址的变量,通过&取地址、*解引用 类型决定行为:指针类型影响解引用字节数和指针运算步长(如char步长1,int步长4) 数组与指针:数组名在多数情况下退化为首元素指针,但sizeof和&arr例外 const修饰:const在左保护数据,在右保护指针本身 安全实践:防范野指针、悬垂指针,进行空指针检查和越界重置 典型应用:三种数组遍历方式,以及利用指针差值实现strlen函数 关键点:指针类型决定了内存操作方式,理解步长和类原创 2026-08-01 22:14:55 · 293 阅读 · 0 评论 -
C 语言中函数的高效学习方法实操在内存函数中
在 C 语言我们学习了字符串的一系列操作,比如拷贝,比较等一系列的操作,那么是否有更加全面的函数呢,现在我们来学习直接通过内存访问来操作一些数据的函数首先我提出一些学习方法,在 C 语言库中有许许多多的函数,而很多同学觉得有些函数过两天就忘了,分享一下我在学习各种很重要的函数时一些实用性很强的学习建议。原创 2025-12-22 15:44:31 · 763 阅读 · 1 评论 -
深度剖析C语言中字符串函数的坑点与细节,并且总结归纳
本文介绍了C语言string.h头文件中常用的字符串处理函数及其实现原理。重点讲解了strcpy字符串拷贝、strcat字符串拼接、strcmp字符串比较、strstr子串查找以及strtok字符串分割等函数。详细分析了每个函数的工作原理,包括参数设计、返回值意义,并提供了自定义实现代码。特别指出strcpy和strcat函数中的while(*dest++=*src++)这种精妙的实现方式,以及strtok函数的分割字符串技巧。文章还提到这些函数都有对应的strn版本,可以指定操作长度,并对字符串查找算法进原创 2025-12-10 21:38:08 · 759 阅读 · 0 评论 -
C语言指针深度实践:将各种指针剖析至尽
本文通过4个案例深入解析C语言指针的核心概念。首先通过指针运算展示不同类型指针的步长差异,int步长为4字节,char为1字节;其次讲解数组指针的用法和注意事项,演示其在二维数组传参中的应用;然后详细介绍函数指针的声明和使用方法,并展示如何用函数指针数组实现策略模式;最后给出一个利用函数指针数组实现的简易计算器实例。文章强调指针实践的重要性,通过真实代码演示帮助读者掌握指针类型、数组指针、函数指针等关键概念的实际应用。原创 2025-11-20 18:57:10 · 383 阅读 · 0 评论 -
理解指针与数组的学习历程————C语言难点
摘要:文章探讨了C/C++中数组名与指针的关系。初学者常困惑为何函数参数用arr[]接收数组名arr(即地址),通过学习指针发现数组名在多数情况下退化为首元素指针,故arr[i]等价于*(arr+i)。sizeof和&操作是例外。函数参数中int arr[]与int* arr等价,因为数组传参时会被转换为指针。理解这一机制有助于清晰使用数组和指针。(150字)原创 2025-11-10 00:40:23 · 787 阅读 · 6 评论
分享