自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言刷题1

定行数:确定上半部分几行、下半部分几行,给行号 i 取值范围。列表格:把 i 从 0 开始的每一行,手动数出空格数、字符数,填进表格。找公差:看相邻两行的数量变化是加几还是减几,确定公差。写公式:用「首项 + 公差 * i」写出通项公式。验边界:代入首行、末行、中间行,验证是否符合预期。举个简单例子:5 行菱形(对角线 5 个字符)上半部分 3 行,i=0、1、2空格:2、1、0 → 公式 2 - i字符:1、3、5 → 公式 2 * i + 1下半部分 2 行,i=0、1。

2026-07-02 16:15:03 440 14

原创 移除元素(Remove Element)题目详解:三种解法与优化实践

快慢指针:一个指针遍历,一个指针记录有效位置覆盖而非删除:通过覆盖无效元素实现"删除"效果原地操作:避免额外空间开销空间换时间vs时间换空间的权衡双指针是处理数组问题的利器原地修改是面试中的常见要求删除排序数组中的重复项移动零合并两个有序数组a- 等类似问题建议读者在理解基础上,自己手写代码实现,并尝试不同的测试用例,加深对双指针法的理解。

2026-06-05 09:39:23 978 18

原创 数据结构:算法效率与复杂度分析详解

第一步:找出基本操作找到执行次数最多的那条语句通常是循环最内层的操作第二步:建立执行次数函数F(n)用数学表达式表示执行次数考虑循环的嵌套和条件第三步:用大O表示法简化去掉所有加法常数只保留最高阶项去掉最高阶项的系数第四步:考虑最坏情况分析算法在最坏输入下的性能这是评价算法性能的标准。

2026-06-04 08:42:47 1846 15

原创 C语言预处理详解:从宏到条件编译

define指令用于定义宏,可以是简单的文本替换(常量宏)或带参数的宏。带参数的宏类似于函数,但本质是文本替换。副作用是指表达式求值过程中改变了变量的值。x + 1;// 无副作用:不改变x的值x++;// 有副作用:x的值增加1y = x++;// 有副作用:x的值增加1在编译时通过命令行定义宏。# GCC 示例# 相当于在代码开头添加:常用选项-DNAME:定义宏 NAME,值为 1:定义宏 NAME,值为 VALUE-UNAME:取消宏 NAME 的定义// 条件编译示例1。

2026-06-02 16:54:33 981 16

原创 编译和链接

翻译环境负责将人类可读的源代码转换为机器可执行的二进制指令。而运行环境则负责实际加载并执行这些二进制指令。翻译环境:源代码 → 可执行文件(.exe.out等)。运行环境:可执行文件 → 程序运行。理解翻译环境和运行环境,是理解 C 程序“从编写到运行”全貌的基石。翻译环境(预处理→编译→汇编→链接)将源代码转化为可执行文件,重在转换;运行环境(载入→执行→终止)管理程序的生命周期,重在执行。

2026-06-01 09:07:31 743 16

原创 新手入门指南:认识 C 语言文件操作(下)

文件随机读写是C语言文件操作的核心,通过fseekftellrewind实现指针定位,fflush管理缓冲区。区分二进制和文本文件行为。读写切换时,务必刷新缓冲区并重置指针。选择合适文件模式(如"r+"用于修改)。代码示例展示了实际用法,强调错误处理和效率。

2026-05-31 15:24:54 903 10

原创 新手入门指南:认识 C 语言文件操作(上)

在程序设计中,文件是一个存储在外部存储设备上的命名数据集合,用于组织和管理信息。文件可以是文本、二进制数据或其他格式的序列。程序文件和数据文件。关键点所有函数都需要错误检查:使用feof()和ferror()检测文件结束和错误。区分格式化与非格式化函数:格式化函数(如fprintf)用于结构化数据,非格式化(如fputc)用于原始数据。fread和fwrite专用于二进制文件,需以"rb"或"wb"模式打开。sprintf和sscanf处理内存字符串,而非文件流。最佳实践。

2026-05-29 11:15:43 881 11

原创 C语言动态内存管理详解:malloc、free、calloc、realloc

函数参数功能返回值注意事项malloc分配连续内存空间成功:void* 起始地址;失败:NULL检查NULL;size > 0;需类型转换freevoid* ptr释放动态分配的内存无ptr必须为动态分配或NULL;释放后置指针为NULLcalloc分配并初始化为零成功:void* 起始地址;失败:NULL自动初始化;适用于清零场景realloc调整内存大小成功:void* 新地址;失败:NULL检查NULL;可能移动数据;更新指针。

2026-05-27 11:29:28 880 12

原创 C语言联合体与枚举详解

特性联合体 (Union)枚举 (Enum)用途存储多种类型数据(同一时间只存一种)定义一组相关的命名常量内存所有成员共用内存,大小由最大成员决定枚举变量通常占int大小类型可以包含不同类型成员所有枚举常量都是整型访问通过成员名访问,同时只能使用一个成员通过常量名引用优势节省内存,实现变体类型提高可读性,类型安全。

2026-05-26 15:26:19 889 15

原创 C语言结构体与位段详解:从声明到内存对齐

位段的成员必须是整型家族类型(int、unsigned int、signed int),在C99中位段成员的类型也可以选择其他整型家族类型,比如:char、short等。位段的成员名后边有一个冒号和一个数字,表示该成员占用的位数。// a占用4位// b占用5位// c占用3位// d占用20位。

2026-05-25 11:04:31 829 12

原创 深度解析数据内存存储与排布规则

整数的2进制表⽰⽅法有三种,即原码、反码和补码有符号的整数,三种表⽰⽅法均有符号位和数值位两部分,符号位都是⽤0表⽰“正”,⽤1表⽰“负”,最⾼位的⼀位是被当做符号位,剩余的都是数值位。正整数的原、反、补码都相同。负整数的三种表⽰⽅法各不相同。原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码。反码:将原码的符号位不变,其他位依次按位取反就可以得到反码。

2026-05-23 15:57:15 782 9

原创 C语言内存函数

目标值推荐方式说明0每个字节为 0x00,结果为 0-1每个字节为 0xFF,结果为 -1其他值(如 1、100)循环赋值i < n;函数功能支持重叠头文件memcpy内存块拷贝❌ 不支持<string.h>memmove内存块拷贝✅ 支持<string.h>memset内存块设置<string.h>memcmp内存块比较<string.h>

2026-05-22 10:16:02 1234 8

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

strlen是C语言中用于计算字符串长度的函数,定义在<string.h>头文件中。strlen不包含'\0':返回的是'\0'之前的字符个数。字符串必须以'\0'结尾:否则会导致越界访问。返回值是size_t:无符号类型,比较时注意不要直接相减。模拟实现:计数器方式最常用,指针减指针方式最简洁,递归方式适合理解递归思想。strcpy会拷贝'\0':源字符串末尾的'\0'也会被拷贝到目标空间,这是确保目标字符串正确结束的关键。目标空间必须足够大:这是使用strcpy。

2026-05-20 11:36:00 1428 17

原创 深⼊理解指针(6)

表达式含义结果(32位/64位)解释sizeof(a)整个数组大小16sizeof(数组名),数组名代表整个数组首元素地址大小4/8a不是单独在sizeof中,表示首元素地址sizeof(*a)首元素大小4*a等价于a[0],int类型第二个元素地址大小4/8a+1是&a[1],地址第二个元素大小4a[1]是int类型sizeof(&a)整个数组的地址大小4/8&a取出地址,地址大小固定整个数组大小16*&a等价于 a跳过整个数组后的地址大小4/8仍然是地址首元素地址大小。

2026-05-16 16:16:26 869 12

原创 深⼊理解指针(5)

回调函数机制解析与qsort应用实践 摘要: 本文深入解析回调函数机制,通过计算器案例对比展示函数指针的应用优势。回调函数通过函数指针实现解耦,将调用逻辑与实现分离,显著提升代码复用性和扩展性。在qsort应用中,演示了如何通过回调函数定义排序规则,包括整型数组排序和结构体排序。重点剖析了结构指针与->操作符的使用方法,展示了如何通过强制类型转换和成员访问实现复杂数据排序。案例表明,回调机制能减少30%代码冗余,是C语言实现灵活架构的核心技术。

2026-05-15 10:54:44 887 10

原创 深⼊理解指针(4)

传参本质:二维数组传参传递的是第一行的地址,参数类型必须为指向固定大小数组的指针(如高效性:只传递指针,避免数据复制,节省内存和时间。访问灵活性:通过指针算术,下标访问和指针解引用可以互换使用。维度匹配:函数参数中列数(如5)必须与数组定义一致,否则会导致未定义行为。函数指针变量是C语言中强大的工具,用于实现动态函数调用、回调机制和复杂数据结构。创建时需注意声明语法,使用时确保参数匹配,typedef可简化代码。函数指针数组那要把函数的地址存到⼀个数组中,那这个数组就叫函数指针数组。

2026-05-14 11:41:45 800 9

原创 深⼊理解指针(3)

上下文数组名arr的含义说明普通使用首元素地址 (&arr[0]大多数情况下,数组名代表数组第一个元素的地址整个数组单独放在sizeof运算符内时,代表整个数组的大小&arr整个数组的地址取地址操作得到的是指向整个数组的指针首元素地址:除和&arr外,数组名arr始终等价于&arr[0]。整个数组中单独使用的arr代表整个数组的大小。数组地址&arr获取的是指向整个数组的指针,类型为int(*)[n](如int(*)[5]),而非int*。传递地址。

2026-05-13 10:52:18 956 14

原创 深入了解指针(2)

本文分两部分探讨了C语言中const修饰指针和野指针的问题。第一部分详细解析了const修饰变量和指针的用法,通过代码示例展示了const在指针不同位置时的行为差异,强调语法位置决定限制对象(内容或指针本身)。第二部分聚焦野指针问题,分析了返回局部变量地址的风险,并提供了动态内存分配、静态变量和参数传递三种解决方案,核心规则是避免返回指向局部变量的指针。文章通过具体代码示例和编译警告说明问题,帮助开发者规避未定义行为和内存错误。

2026-05-11 10:43:25 824 12

原创 深⼊理解指针(1)

本文介绍了计算机内存编址和指针的基本概念。内存按字节划分单元,每个单元有唯一地址,指针变量存储这些地址。指针类型决定了访问权限和解引用方式:int*访问4字节,char*访问1字节。指针运算的步长也由类型决定,如int*加1实际地址增加4字节。void*是泛型指针,但需转换后才能操作。指针大小在32位系统为4字节,64位系统为8字节,与指向类型无关。通过代码示例演示了取地址(&)、解引用(*)和指针运算的实际应用。

2026-05-10 14:10:28 754 7

原创 python中数值类型、占位符、运算符及转义字符详解

本文介绍了Python编程基础中的数值类型、占位符、运算符、输入函数和转义字符。数值类型包括整型(int)、浮点型(float)、布尔型(bool)和复数型(complex)。占位符支持%格式化和f-string两种字符串格式化方式。运算符涵盖算术运算和赋值运算,并说明优先级规则。输入函数input()用于获取用户输入,返回字符串类型。转义字符如\n、\t等用于特殊字符处理,r前缀可创建原生字符串。文章通过示例代码详细演示了各项功能的使用方法。

2026-05-09 10:09:01 408 1

原创 从零梳理 C 语言各类操作符,知识点一次性汇总

本文系统介绍了C语言操作符的分类、二进制转换及位操作。操作符分为算术、移位、位操作、赋值等类别,需注意优先级和结合性。二进制转换包括十进制、8进制和16进制的转换方法。整数存储采用原码、反码和补码表示,其中补码是计算机标准。移位操作符(<<和>>)用于二进制位移,左移等价乘2的幂次,右移分逻辑和算术两种。位操作符(&、|、^、~)直接操作二进制位,分别实现位与、位或、异或和取反功能,通过表格直观展示位运算过程。理解这些概念对高效编程至关重要。

2026-05-08 16:53:48 891 3

原创 新手必看!C 语言函数递归从入门到精通

递归是一种编程技术,其中一个函数直接或间接地调用自身来解决问题。它将一个大问题分解为更小的、相似的子问题,直到达到一个简单的基础情况(base case),然后逐步返回结果。递归的核心思想是“自我引用”,常用于处理具有重复结构的问题,如数学序列、树形结构等。递归关系(Recurrence Relation)FnFn−1Fn−2FnFn−1Fn−2对于n2n > 2n2。基础情况(Base Case):当问题足够简单时,直接返回结果,无需递归,例如F11。

2026-05-06 16:35:48 327 1

原创 踩坑总结|VS2022 高频编程错误分类 + 一键解决

本文介绍了三种编程错误类型:1) 编译型错误(如语法错误),示例中因缺少分号导致编译失败;2) 链接型错误(如未定义函数、拼写错误、头文件缺失或库不存在),通过多个代码示例说明链接阶段符号解析问题;3) 运行时错误(如数组越界),程序能编译但执行时崩溃。每种错误均给出具体代码示例、错误解释和修复方法,涵盖从编译到运行的完整错误排查场景。

2026-05-05 14:34:53 414 1

原创 从零实现C语言扫雷游戏:核心逻辑与完整代码和解析

/ 游戏可视棋盘大小(9*9)99// 实际棋盘大小(+2是为了处理边界,避免越界访问)22// 地雷数量10// 初始化棋盘// 打印棋盘// 布置地雷// 排查地雷ROWS/COLS 比 ROW/COL 大 2:扫雷时需要统计某位置周围 8 个格子的地雷数,若直接用 99 棋盘,边缘 /角落位置会出现数组越界(如第 1 行第 1 列的位置,访问x-1会到 0 行),因此扩展棋盘为 1111,仅使用中间 9*9区域展示,边界区域用于辅助计算。

2026-05-04 15:21:51 949 7

原创 【新手必看】C语言二维数组实战:从栈损坏报错到彻底掌握(附VS2022排坑指南)

本文详细讲解了C语言二维数组越界写入导致栈损坏的常见问题。通过VS2022报错实例,作者还原了控制台输出与程序崩溃的过程,深入分析了越界写入非法内存的原理,并解释了为何程序能部分执行后才报错。文章提供了修复后的完整代码,包含正确的二维数组初始化、打印和边界控制方法,重点强调了动态计算行列数的重要性。同时拆解了二维数组传参、循环边界控制等关键知识点,给出了VS2022调试建议和避坑指南。最后总结二维数组使用的核心要点,帮助编程新手避免类似错误,建立正确的内存安全意识。

2026-05-03 16:00:34 511 2

原创 零基础速通 C 语言函数,看完直接会写会用

本文系统讲解了函数的概念、库函数的使用和自定义函数的实现方法。函数作为封装特定功能的代码块,可分为库函数(如C语言的printf)和自定义函数两类。库函数通过头文件引入,提供高效可靠的预设功能;自定义函数则通过形参接收实参的值,实现模块化编程。文章重点剖析了函数定义语法、形参与实参的值传递特性,并通过多个代码示例演示了函数定义、调用及参数处理的具体应用,强调函数在提高代码复用性和维护性中的关键作用。

2026-05-03 15:45:07 1171 1

原创 零基础速通 Python!快捷键 + print 函数 + 变量命名全干货

本文总结了Python编程基础要点:1. 常用快捷键(注释、撤销、查找等);2. print()函数用法,包括多值输出、分隔符和行尾控制;3. 变量特性与标识符命名规则,强调动态类型和大小写敏感;4. 三种命名规范(下划线、大小驼峰);5. 注意事项如代码执行顺序和括号使用。全文以简洁代码示例辅助说明核心语法,适合快速回顾Python基础。

2026-05-02 21:09:08 81 3

原创 保姆级C 语言数组超详细教程,零基础也能秒懂

本文系统介绍了数组的概念、特性及使用方法。数组是一种存储相同类型元素的线性数据结构,具有固定大小、类型统一和高效随机访问的特点。文章详细讲解了一维数组的创建、初始化及内存存储方式,并扩展到二维数组的结构与应用。通过示例代码展示了数组的实际操作,包括元素访问、遍历及使用sizeof计算元素个数。最后强调了数组在内存中的连续存储特性及其对性能的影响,为编程实践提供了理论基础和实用指导。

2026-05-02 11:31:13 833 16

原创 超经典猜数字小游戏|零基础也能轻松上手的趣味编程项目

摘要 C语言猜数字游戏是经典的编程入门项目,通过基础循环、条件判断和随机数实现互动功能。核心代码包括:1)使用rand()生成1-100随机数;2)while循环接收玩家输入并提示大小关系;3)do-while菜单实现重复游戏。改进版新增了5次尝试限制,通过count计数器实现,增强了游戏挑战性。代码展示了随机数生成(需配合srand初始化)、循环控制、输入输出等基础编程概念,适合初学者练习。存在"eixt"拼写细节问题但不影响运行,可扩展输入验证、难度分级等功能。

2026-05-01 17:41:35 536 7

原创 C语言零基础:if/switch/for/while/do while选择与循环全解(超详细笔记)

摘要:本文系统讲解了C语言中的选择与循环结构,涵盖if/switch条件语句和for/while循环语句的核心用法。重点解析了if语句的单分支、双分支及嵌套形式,强调了大括号包裹多语句的必要性;详细说明了关系运算符、逻辑运算符(&&/||/!)的使用规则及短路特性;深入剖析了switch多分支语句的语法规范与break穿透问题;最后通过示例代码演示了三目运算符和各类循环结构的应用场景。全文配有大量图示和避坑指南,为零基础学习者提供了一份结构清晰、内容翔实的C语言控制结构学习笔记。

2026-05-01 15:05:29 6125 7

原创 数据类型和变量

1. 数据类型2. signed 和unsigned3. 数据类型的取值范围4. 变量5. 算术操作符:+、-、*、/、%6. 赋值操作符:= 和复合赋值7. 单⽬操作符:++、--、+、-8. 强制类型转换9. scanf和printf介绍 1.1 字符型在C语言中使用char来表示字符类型。下面()内在写代码的时候可以省略 1.2 整型在C语言中使用int来表示整型类型。// 短整型// 整型// ⻓整型// 更⻓的整型 1.3 浮点型 1.4 布尔类型布尔类型是专门表示真或假的。(整数0表示假

2026-04-30 17:17:22 488 9

原创 1.初始C语言及常见概念

C语⾔把。

2026-04-25 16:16:57 472 11

原创 【无标题】

1、我是一名民办本科大二的学生,我是打算考研的,在自己学习数据结构的时候听的一头雾水,网课老师说C语音的指针很重要,C语言学习好了对数据结构的学习有很好的帮助。我又开始学习C语言,开始在C语言找网课,找到了鹏哥讲C语言,进微信群正好看到了有这活动对自己的学习很有帮助,来到了比特。利用没有直播课的时间通过鹏哥B站上的视频提前预习,并及时进行编程训练,并举一反三。一定要不断的练习编程。5、其实我并没有想好去哪家公司,其实我想找个薪资越多越好的公司,但是我想应该要有更好的技术才有更多机会,所以我一定要好好努力。

2026-04-03 18:03:22 46 1

空空如也

空空如也

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

TA关注的人

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