- 博客(15)
- 收藏
- 关注
原创 【C语言】自定义类型:结构体
位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以选择其他类型。位段的成员名后边有⼀个冒号和⼀个数字。int _b : 5;A就是⼀个位段类型。那位段A所占内存的⼤⼩是多少?//输出的结果:8理解结构体的声明、内存对齐、传参。什么是位段?位段与结构体有什么分别吗?
2025-07-17 22:55:12
421
原创 【C语言】数据在内存中的存储
本文介绍了数据在内存中的存储方式。整数采用补码存储,便于统一处理符号位和加减运算。浮点数根据IEEE 754标准存储,由符号位S、有效数字M和指数E组成,32位和64位浮点数分别采用不同位宽存储这三个部分。还介绍了大小端字节序的概念及判断方法,大端模式将数据高位存储在低地址,小端模式则相反。通过代码示例展示了整数和浮点数在内存中的存储差异,帮助理解不同类型数据的内存表示方式。
2025-07-16 23:00:50
600
原创 【C语言】深入理解指针(4)
本文介绍了回调函数的概念及其应用。回调函数是通过函数指针调用的函数,将函数地址作为参数传递,在特定事件发生时被调用。通过改造计算器程序示例,展示了如何用回调函数简化冗余代码。文章还讲解了qsort函数的使用方法,包括整型数组和结构体数组的排序实现,并通过模拟qsort的冒泡排序,演示了回调函数的实际应用。最后总结了回调函数的基本用法和优势,帮助读者理解其核心思想。
2025-07-15 18:28:43
204
原创 【C语言】深入理解指针(3)
本文主要讲解了指针在C语言中的几种重要应用。首先介绍了字符指针变量(char*)的两种使用方式,并通过《剑指offer》例题分析了字符串地址的特性。其次详细解析了数组指针变量的定义、初始化方法及其与指针数组的区别。在二维数组传参部分,揭示了其本质是传递第一行一维数组的地址。随后深入探讨了函数指针变量的创建与使用方式,包括函数地址的获取和通过指针调用函数。最后通过两段复杂代码展示了函数指针的高级应用,并介绍了typedef关键字在简化复杂指针类型声明中的作用。全文通过代码示例和图示,系统性地讲解了各类指针的核
2025-07-14 09:44:01
1282
原创 【C语言】深入理解指针(2)
这篇文章主要讲解了指针在数组中的应用及相关概念。文章首先指出数组名本质上是数组首元素的地址,并通过示例验证这一结论,同时指出sizeof(数组名)和&数组名两种例外情况。接着介绍了如何使用指针访问数组元素,以及一维数组传参的本质是传递首元素地址。文章还详细讲解了冒泡排序算法的实现和优化方法,最后简要提及二级指针的概念。全文通过代码示例和输出结果直观地展示了指针与数组的关系及其应用场景。
2025-07-13 13:44:17
572
2
原创 【C语言】深入理解指针(1)
本文介绍了C语言中指针的基本概念和操作。主要内容包括:内存和地址的关系,指针变量与取地址操作符(&)的使用,指针类型对解引用和加减运算的影响,以及指针变量在不同平台下的大小差异。指针本质上存储内存地址,通过指针类型可以决定访问内存的权限范围。32位系统中指针占4字节,64位占8字节。理解指针有助于更灵活高效地操作内存数据。
2025-07-12 19:16:31
1242
1
原创 【C语言】操作符详解
本篇文章主要介绍一些C语言中操作符的用法。//代码1:变量的定义int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//代码2:初始化。struct Stu //类型声明//名字int age;//年龄//初始化//指定顺序初始化//代码3int data;//结构体嵌套初始化//结构体嵌套初始化。
2025-07-07 09:55:36
1003
原创 【C语言】函数递归
递归与迭代是函数编程中的两种重要方法。递归指函数调用自身,将大问题分解为相似的小问题求解,但需设置终止条件避免无限递归。文中通过阶乘计算和整数位打印展示了递归的应用,并指出递归效率可能较低,存在重复计算和栈溢出风险。相比之下,迭代(如循环)通常更高效,例如用循环实现阶乘计算。斐波那契数列的递归解法因重复计算导致性能低下,而迭代则是更优选择。递归适合简化复杂问题,但需权衡其运行开销。
2025-06-30 23:22:38
772
原创 【C语言】VS实用调试技巧
本文介绍了C语言编程中的实用调试技巧。首先解释了"bug"一词的起源及其含义,并阐述了调试的概念和重要性。文章对比了Debug和Release版本的区别,详细讲解了VS调试环境下的快捷键使用,包括F9(断点)、F5(启动调试)、F10(逐过程)和F11(逐语句)。还介绍了监视窗口和内存观察两种调试方法,通过具体代码示例展示了如何分析内存布局。最后将编程常见错误分为编译性、链接性和运行时错误三类,强调了调试在解决运行时问题中的关键作用。掌握这些技巧能有效提升程序员对代码的理解和问题解决能力
2025-06-29 20:25:46
1645
原创 【C语言】数组和函数实践:扫雷游戏
本文实现了一个基于C语言的扫雷游戏。游戏采用控制台界面,支持9×9棋盘和10个随机布置的雷。通过多文件结构设计,将代码分为test.c(测试逻辑)、game.c(游戏实现)和game.h(函数声明)。游戏使用两个11×11数组分别存储雷的位置信息和玩家排雷信息,避免了边界越界问题。玩家可以输入坐标进行排雷,失败会显示雷的位置,成功则提示胜利。游戏还提供了菜单界面,支持重新开始或退出游戏。
2025-06-29 16:10:01
1010
原创 【C语言】函数
函数在C语言中至关重要,C语⾔的程序其实是由⽆数个⼩的函数组合⽽成的。下面我们将详细介绍C语言中的函数。了解了库函数,我们的关注度应该聚焦在⾃定义函数上,⾃定义函数其实更加重要,也能给程序员写代码更多的创造性。⼀般我们在使⽤函数的时候,直接将函数写出来就使⽤了。⽐如:我们要写⼀个函数判断⼀年是否是闰年。上面代码4-10行是函数的定义,16行是函数的调用。这种场景下是函数的定义在函数调⽤之前,没什么问题。
2025-06-29 14:40:27
878
原创 【C语言】数组
本节主要介绍C语言中的数组。那么什么数组?我们应该怎么去使用?数组在内存中是怎样存储?看完上面内容我们知道了一维、二维数组从创建、初始化到使用的全过程,也知道了它们在内存里存储的规律。
2025-06-28 11:15:00
1035
原创 【C语言】猜字小游戏
本文介绍了用C语言实现猜数字小游戏的方法。游戏要求电脑生成1-100的随机数,玩家根据提示猜测数字。文中详细讲解了使用rand()和srand()生成随机数的原理,指出通过time()函数获取时间种子可以解决rand()伪随机的问题。同时给出了设置随机数范围的公式(a + rand()%(b-a+1))。最后提供了完整的游戏代码实现,包括菜单界面、游戏逻辑和猜数次数限制功能。通过这个案例,读者可以学习到随机数生成技巧和循环结构在游戏开发中的应用。
2025-06-27 13:09:18
685
原创 【C语言】分支与循环
C语言提供了if和switch语句来实现分支结构。if语句用于单条件判断,语法为if(表达式)语句;可通过else实现双分支逻辑,else与最近的if匹配。switch语句用于多分支选择,语法为switch(整型表达式){case 常量:语句},需配合break防止穿透效果,default处理未匹配情况。if适合简单条件判断,switch适用于多值匹配场景,两者各有适用场景,合理使用可构建清晰的分支逻辑结构。
2025-06-26 18:37:15
1117
2
原创 【C语言】C语言的数据类型和变量
本文系统介绍了C语言的数据类型和变量。主要分为内置数据类型(字符型、整型、浮点型、布尔类型)和变量创建、分类两部分。 数据类型部分详细讲解了char、int、float等常用类型及其有符号/无符号版本,介绍了sizeof运算符的使用方法及注意事项,并分析了各种数据类型的长度和取值范围。 变量部分说明了变量的创建语法和初始化方式,区分了全局变量(大括号外部定义)和局部变量(大括号内部定义)的用法范围。 文章通过代码示例演示了类型定义、变量声明和sizeof操作的实际应用,为C语言基础学习提供了系统性的数据类型
2025-06-23 22:02:17
1010
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人