- 博客(23)
- 资源 (2)
- 收藏
- 关注
原创 斐波那契--交换法
摘要:斐波那契数列以a1=1和a2=1为初始项,后项为前两项之和(nu=a1+a2)。通过递归关系Fn=Fn-1+Fn-2生成数列,其中i表示项数,n为当前项值。该数列具有黄金分割等数学特性,广泛应用于计算机和自然科学领域。
2025-08-09 13:26:04
236
原创 源文件 -- 转成lib静态库文件 -- 保护源码
【摘要】通过将函数声明与定义分离,可将代码封装为静态库:将声明写在头文件(.h),定义写在源文件(.c),然后在项目属性中将配置类型改为静态库(lib)。编译生成.lib文件后,用户只需导入该库和头文件即可调用函数,无需查看具体实现代码。这种方法既实现了函数功能的共享,又保护了源代码的私密性。
2025-07-27 23:14:11
287
原创 多次重嵌套printf()函数,返回字符个数
嵌套printf()函数时,内层printf()的返回值(打印字符数)会作为外层printf()的参数。这种嵌套使用时需要注意执行顺序和返回值传递。
2025-07-27 22:45:28
214
原创 函数-- 定义 -- 调用
函数定义不能嵌套,但可以相互调用。调用时需遵循链式访问原则:被调用的函数必须在调用语句前完成声明或定义。这一规则确保了程序的正确编译执行。
2025-07-27 22:23:45
155
原创 函数 -- 值传递 --地址传递
本文比较了函数参数传递的两种方式。值传递适用于返回单个不变值的情况,return语句只能返回一个变量值。地址传递(指针传递)用于需要修改多个变量值或返回多个值的场景,通过传递变量地址实现数据共享。当需要修改原变量值时,应使用指针作为参数,这种传址方式能够突破return的单值返回限制,实现函数内外的数据交互。
2025-07-26 20:01:23
121
原创 二分查找 -- 左移--右移--与数组元素值排列无关
这篇文章介绍了如何在数组中查找指定值的方法。作者建议使用二分查找算法:首先确定数组的首尾位置,通过比较中间元素与目标值来决定向左或向右移动查找范围,重复此过程直至找到目标值并返回其下标,否则返回-1。该方法利用二分思想能高效查找有序数组中的元素。
2025-07-24 19:34:52
138
原创 循环 - break-continue
在循环结构中,break和continue有不同作用:break会立即终止当前整个循环,继续执行后续代码;而continue只会跳过当前迭代中剩余的代码,直接回到循环条件判断处继续执行。关键区别在于break会完全退出循环,而continue只是跳过单次迭代。特别要注意continue后无法执行i++等迭代语句,容易导致死循环,因此迭代操作应放在continue之前。for循环中使用continue时,会正常执行i++后再判断条件。
2025-07-23 20:25:45
180
原创 结构体 -- 定义 -- 调用
结构体是C语言中用于组合不同类型数据的复合数据类型。定义结构体使用struct关键字后跟结构体名和成员列表,如struct Person{char name[20];int age;}。结构体变量可通过struct 结构体名 变量名声明,初始化使用={值1,值2}形式,成员赋值使用点运算符.。例如定义并初始化:struct Person p1={"张三",25};,后续赋值可写p1.age=30;。结构体实现了相关数据的逻辑组合与管理。
2025-07-23 13:29:56
213
原创 C语言结构体与C++结构体的区别
C语言结构体仅支持数据成员定义,而C++结构体扩展了功能,允许定义成员函数,语法与类相似。但C++结构体不具备面向对象的封装、继承和多态特性,与类存在本质区别。这种差异体现了C++对C语言结构体的功能增强,同时保留了其作为轻量级数据聚合体的特点。
2025-07-23 13:10:44
233
原创 初识C指针
摘要:指针是存储内存地址的特殊变量,其大小取决于系统平台而与数据类型无关。32位系统中指针占4字节,64位系统占8字节。%p用于打印内存地址,&符号用于获取变量地址,取地址操作返回的是变量首个字节的地址。
2025-07-23 12:50:10
120
原创 Visual Studio 运行时 -- 调试 --窗口功能问题
调试窗口功能异常可能因运行时状态未正确标记导致。当IDE处于运行状态但没有显示小红点标记时,调试菜单下的窗口命令将不可用。必须出现运行状态的小红点标识,才能正常使用调试窗口的各项功能。此时可通过按F10键(单步调试)来激活调试功能,使窗口命令恢复正常可用状态。该问题通常与IDE的运行状态识别机制有关。
2025-07-23 12:35:44
166
原创 #define 定义 常量和 宏 -- 替换作用
#define用于定义常量和宏: 定义常量:#define name 值(支持字符串、字符、数值) 定义宏:#define name(参数) 表达式(注意表达式要加括号确保运算优先级) 使用时需注意宏定义是简单文本替换,表达式应加括号避免优先级问题。
2025-07-21 14:30:09
167
原创 static -- 静态修饰符
摘要:static修饰符在不同场景下作用不同:修饰局部变量可延长其生命周期;修饰全局变量和函数会限制其作用域,使其仅能在当前文件内访问。extern声明则用于访问外部全局变量和函数。static修饰的全局变量和函数将禁止被外部链接访问,从而增强代码的封装性。静态修饰符通过控制变量和函数的存储类型与链接属性,实现了对程序作用域和生命周期的灵活管理。
2025-07-21 13:57:50
243
原创 数组--元素的输出
数组初始化时,若指定大小但未填充元素,系统会自动补0;若未指定大小且未填满,末尾会自动添加随机字符。这两种行为可能导致程序出现意外结果,开发者需注意初始化方式以避免潜在问题。
2025-07-20 12:11:42
117
原创 测试--函数何时可以用变量接收
摘要:函数返回值类型决定能否用变量接收。当函数无返回值时,不能使用变量接收;而有返回值的函数则允许用变量存储其返回值。这体现了编程语言中返回值与变量接收的基本规则。
2025-07-20 11:42:17
129
原创 C语言中的字符串
【摘要】C语言中,字符串以char数组形式存储,末尾自动添加'\0'作为结束标志。数组长度=字符数+1('\0'),而strlen()函数计算实际字符数(不含'\0'),需包含<string.h>头文件。若未显式添加'\0',数组后续内容将包含随机字符直至遇到'\0'。示例代码演示了字符串初始化与长度计算的差异。
2025-07-19 21:30:37
143
原创 初识常量 - 值不会被改变
文章摘要:const修饰的变量虽然称为常变量,但其本质仍是变量,不能作为数组下标。数组下标必须使用真正的常量(如#define定义的宏常量)。常变量与常量的区别体现在编译器处理方式上,常变量具有变量特性,会占用存储空间,而常量在编译时就被替换。这个特性在数组定义等需要编译时常量的场景中尤为重要。
2025-07-19 20:17:37
123
原创 全局变量的作用域
在多文件项目中,全局变量需在函数体外声明,并在其他文件中用extern引用才能共享使用。代码一中,main函数外声明的变量属于全局变量;代码二同理,但需通过extern声明才能跨文件访问。这种机制实现了不同文件间的数据共享。
2025-07-19 19:40:35
132
原创 仿写代码 -- 分解代码块
学习仿写代码需理解每段代码的功能和逻辑,掌握作者的编程思路,从而构建完整的技术蓝图。先分析代码结构,再模仿重写,逐步内化为自己的技能。
2025-07-19 18:34:08
140
原创 初识常量与变量
本文介绍了常用代码块输出类型占位符:%d表示整型,%f表示float型(可用%.2f保留2位小数),%lf表示double型(可用%.3f保留3位小数)。不同占位符对应不同数据类型,其中浮点型可通过设置格式控制小数位数。
2025-07-19 15:35:53
129
原创 Visual Studio 工具使用scanf函数的解决办法
VS中解决无法使用scanf函数的标准方法是在代码开头添加宏定义#define _CRT_SECURE_NO_WARNINGS 1。具体操作:找到Visual Studio安装目录下的newc++file.cpp文件,用记事本打开后添加该宏定义并保存。这样可避免编译时出现安全警告,同时保留使用scanf函数的功能。此方法适用于所有需要使用不安全函数的场景。
2025-07-19 15:05:24
264
原创 初识C语言数据类型
摘要:本文介绍了C语言中sizeof操作符的基本用法,它用于计算数据类型或变量所占的字节大小。根据C标准,sizeof(long)必须大于等于sizeof(int)。sizeof只能用于计算数组和基本类型(如int、long等)的空间大小,其单位为字节(byte)。该操作符是C语言编程中获取内存占用情况的重要工具。
2025-07-19 14:21:55
168
原创 初识C语言
C语言是一种介于硬件与操作系统之间的底层语言,既可开发应用程序又可编写底层代码。常用编译器包括Visual Studio 2013/2019的MSVC。学习编程不应局限于C语言,需要更全面的知识体系。
2025-07-19 13:26:50
280
关于#HTML#的问题,如何解决?
2022-12-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅