
C语言
文章平均质量分 76
C语言学习笔记
懒羊羊不懒@
求关注
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C语言动态内存管理+柔性数组
本文介绍了介绍了C语言动态内存分配的必要性和实现方法uzzyimg。主要内容包括:动态内存分配的必要性在于解决程序运行时才能确定空间需求的问题;malloc烯联free、calloc、realloc等动态内存分配函数的使用方法及注意事项;常见动态内存错误(如空指针解引用、越重访访问、多次释放等);;经典笔试题分析;以及柔性数组的概念、特性和使用优势。关键点在于强调动态内存分配提供了灵活的内存管理方式;同时必须注意内存泄漏和错误释放问题问题。原创 2025-10-03 01:12:14 · 878 阅读 · 0 评论 -
C语言字符函数和字符串函数+内存操作函数
本文详细介绍了C语言中常用的字符串处理函数和内存操作函数,1、基础字符串函数:包括strlen、strcpy、strcat、strcmp等,重点讲解了其使用方法和模拟实现。2、受限字符串函数:如strncpypy、strncat、strncmp等,这些函数限制了"快速排序-快速排序"问题记录问题与解决方案记录的问题类型为"排序算法",记录了使用快速排序算法解决排序问题时遇到的问题。3、字符串查找与分割函数:strstr和strtok,用于查找子串和字符串分割。4、错误原创 2025-10-01 22:20:42 · 1228 阅读 · 0 评论 -
C语言指针进阶(进阶)
摘要 本文系统讲解了C语言指针的高级应用,重点内容包括: 指针类型:深入分析字符指针、指针数组和数组指针的区别与用法,通过示例说明指针数组模拟二维数组的方法。 数组传参与指针传参:详细讲解一维/二维数组作为函数参数的传递方式,以及一级/二级指针的传参规则。 函数指针:介绍函数指针的定义和使用方法,包括回调函数机制,并通过计算器案例演示函数指针的实际应用。 复杂指针结构:解析函数指针数组、指向函数指针数组的指针等复杂概念。 关键面试题:提供多组指针与数组的笔试题解析,帮助理解sizeof和strlen的区别,原创 2025-09-28 22:40:18 · 1181 阅读 · 0 评论 -
C语言数据的存储
本文系统介绍了C语言中数据的存储方式,重点包括:1)数据类型分类及内存占用大小,2)整型的源码、反码、补码表示及存储原理,3)大小端字节序的概念及判断方法,4)浮点型在内存中的存储结构。特别强调了计算机使用补码存储整型数据的原因,以及通过联合体判断字节序的实用技巧。最后通过float和double的内存布局示例,展示了浮点数的特殊存储方式。这些底层知识对理解程序数据存储和优化具有重要意义。原创 2025-09-25 21:56:05 · 1213 阅读 · 0 评论 -
C语言操作符详解
本文系统介绍了C语言中的各类操作符及其应用。主要内容包括:1)操作符分类,涵盖算术、移位、位运算等11种类型;2)重点讲解了算术运算符的整数/浮点数除法差异、移位运算符的补码运算规则;3)详细解析了位操作符的实际应用,包括变量交换和统计二进制1个数的编程实现;4)说明了赋值、单目、关系等操作符的特性和注意事项;5)介绍了表达式求值中的隐式类型转换(整型提升)机制。文章通过具体代码示例演示了各操作符的用法,并指出复杂表达式可能导致的不可预期结果,建议编程时应保持代码简洁。原创 2025-09-22 18:57:27 · 1812 阅读 · 0 评论 -
C语言联合(共用体)
摘要: 联合体(共用体)是一种特殊自定义类型,其成员共享同一块内存空间,大小至少为最大成员的大小。通过地址验证可确认成员共用内存特性,联合体常用于判断计算机大小端存储模式。联合体大小的计算需考虑最大成员和对齐数,当最大成员不是对齐数的整数倍时,需扩展至对齐数整数倍。例如包含5字节数组和整型的联合体,在4字节对齐系统下大小为8字节。原创 2025-09-20 16:46:35 · 242 阅读 · 0 评论 -
C语言枚举
枚举是一种列举有限取值的数据类型,如星期、性别等。枚举类型定义使用enum关键字,枚举常量默认从0开始递增,也可手动赋值。示例代码展示了枚举的定义、初始值修改及打印输出。枚举具有提高代码可读性、限制取值范围等优点,但在C++中可能报错。原创 2025-09-20 11:39:09 · 273 阅读 · 0 评论 -
C语言结构体(位段)
文章摘要:位段是一种节省内存空间的结构体实现方式,通过在成员名后加冒号和位数来指定成员占用的比特数。位段的内存分配按4字节(int)或1字节(char)为单位开辟空间,但存储方式与平台相关,存在跨平台问题。位段在网络编程中应用较多,虽能有效节省空间,但由于实现细节不确定(如有符号处理、最大位数、内存分配方向等),可移植程序应谨慎使用。使用位段时建议同类型成员集中存放,并注意不同平台可能存在的存储差异。原创 2025-09-20 10:32:53 · 273 阅读 · 0 评论 -
C语言自定义类型:结构体
本文主要介绍了C语言中的结构体类型及其相关特性。内容包括:1)结构体的基础声明、自引用和变量定义;2)结构体内存对齐规则及其原理(空间换时间);3)修改默认对齐数的方法;4)offsetof宏的使用;5)结构体传参的优化建议(优先传址)。重点解析了内存对齐的计算规则(涉及成员大小、对齐数和总大小)及其对程序性能和可移植性的影响,同时通过示例对比了不同成员排列对结构体大小的差异。最后指出结构体传参时应传递指针以提高效率。原创 2025-09-19 21:46:33 · 1352 阅读 · 0 评论 -
C语言结构体(初级)
有了结构体类型,那如何定义变量。方法1:声明结构的时候直接定义结构体变量。struct Stu//姓名int age;//年龄//性别//学号} s1;//声明结构的时候直接定义结构体变量s1。struct Stu//姓名int age;//年龄//性别//学号//定义结构体全局变量int main()//定义结构体局部变量return 0;方法3:在定义结构体变量时直接初始化。定义+初始化。struct Stu//姓名。原创 2025-09-19 11:56:38 · 973 阅读 · 0 评论 -
C语言结构体(初步认识)
C语言结构体是描述复杂数据类型的重要工具,它通过组合不同类型的数据项(如学生信息:姓名、年龄、性别、学号)来创建新类型。结构体本身不占空间,只有在创建变量时才分配内存。初始化时可直接赋值,访问成员使用点运算符(如s.name)。通过指针访问成员有两种方式:解引用((*ps).name)或箭头运算符(ps->name)。示例展示了如何定义结构体、创建变量以及通过指针访问成员的方法。原创 2025-09-19 10:21:36 · 138 阅读 · 0 评论 -
C语言指针(初级)
本文主要介绍了C语言中指针的相关知识。首先解释了指针的本质是地址,指针变量用于存储内存地址。接着详细讲解了指针类型的作用,包括决定解引用访问的字节数和指针运算的步长。然后分析了野指针的成因及规避方法,包括指针初始化、避免越界访问等。文章还介绍了指针运算(加减整数、指针相减)和指针与数组的关系,指出数组名即首元素地址。最后讲解了二级指针和指针数组的概念,以及如何用指针数组模拟二维数组。全文通过代码示例直观展示了指针的各种特性与应用场景,帮助读者深入理解这一重要概念。原创 2025-09-14 18:42:48 · 669 阅读 · 0 评论 -
C语言数组
本文介绍了C语言中一维和二维数组的基本操作。主要内容包括:数组的创建与初始化(含变长数组)、数组遍历、内存存储方式(连续存放)、数组越界问题等。重点讲解了数组作为函数参数时的传递方式(首元素地址),并详细说明了冒泡排序的实现过程。特别指出数组名的两种特殊情况:sizeof(数组名)和&数组名。二维数组部分还介绍了行/列计算方法和内存连续存储特性。文章通过代码示例展示了数组的基本用法和注意事项,为C语言数组操作提供了基础指导。原创 2025-09-13 22:17:50 · 272 阅读 · 0 评论 -
c语言题目练习
编写代码实现,模拟用户登录情景,并且只能登录三次。(值允许输入三次密码,如果密码正确则提示登录成果,如果三次均输入错误,则退出程序)。注意:比较2个字符串是否相等,不能使用==,而且该使用一个库函数:strcmp,如果返回值是0,表示两个字符串相等。在一个有序数组中查找具体的某个数字n。编写代码,演示多个字符从两端移动,向中间聚集。原创 2025-08-11 22:28:14 · 303 阅读 · 0 评论 -
c语言循环语句
本文介绍了C语言中的三种循环语句:while、for和do...while。重点讲解了while循环的结构和使用方法,包括break和continue语句的作用,以及getchar()函数的使用场景。同时详细说明了for循环的语法特点、控制变量建议和变种写法,并对比了do...while循环与其他两种循环的区别。文章通过具体代码示例展示了每种循环的基本用法和注意事项,其中for循环因结构清晰被推荐为主要使用方式。原创 2025-08-11 19:02:37 · 1522 阅读 · 0 评论 -
c语言分支语句
C语言语句分为以下五类1.表达式语句2.函数调用语句3.控住语句4.复合语句5.空语句本次介绍的是控制语句控制语句:用于控制程序的执行流程,已实现程序的各种结构方式【顺序结构、选择结构、循环结构】,它们由特定的语句定义符组成,c元有九种控制语句。可以成以下三个类:1.条件判断语句也叫分支语句:if语句、Switch语句;2.循环执行语句:do while语句、while语句、for语句;3.转向语句:break语句、goto语句、continue语句、return语句;原创 2025-08-11 09:01:42 · 1687 阅读 · 0 评论 -
C语言函数
本文介绍了C语言函数的基本概念与分类,主要包括库函数和自定义函数。库函数需包含对应头文件,可通过在线工具查询使用方法;自定义函数由程序员自行设计,包含函数名、返回类型和参数。文章详细讲解了函数参数(实参和形参的区别)、函数调用的两种方式(传值调用和传址调用),并通过多个实例演示了函数的具体应用,包括求最大值、交换变量、判断素数/闰年、二分查找以及计数器功能。此外还介绍了函数的嵌套调用和链式访问方法,为C语言函数编程提供了全面的入门指导。原创 2025-09-14 21:46:56 · 263 阅读 · 0 评论 -
C语言函数(函数递归)
程序调用自身的编程技巧称为递归(recursion)。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述出问题过程所需要的多次重复计算,大大减少了程序大代码量。递归的主要方式在于:把大事化小。原创 2025-09-17 22:25:00 · 508 阅读 · 0 评论 -
c语言函数 (递归与迭代)
当我们输入40时,即求第40个的斐波那契数列的数值,会发现光第三项就求了上千万次,因此大量的重复导致效率及其低下,因此这里不适合用递归。改用迭代大大提高了代码的效率,迭代代码如下。//代码2:迭代实现---非递归实现。//方法2:迭代---非递归。//代码1:用递归的方法。//代码1:递归实现。原创 2025-09-18 21:22:38 · 588 阅读 · 0 评论