day10
2026/7/31 6:49:12 网站建设 项目流程

一、 函数传参的深化分类

· 1.1 基本数据类型的值传递
· 传递机制:实参将值拷贝给形参,形参是实参的副本。
· 核心特性:函数体内修改形参的值,不影响外部的实参。
· 适用范围:函数仅需读取外部变量值进行运算的场景。
· 1.2 全局变量传递数据
· 定义:利用定义在所有函数外部的变量进行跨函数数据共享。
· 核心特性:任何函数均可直接读写全局变量。
· 主要缺陷:破坏函数的封装性与独立性,增加模块间耦合度,降低代码可维护性。
· 同名隐藏规则:若函数内部定义了与全局变量同名的局部变量,在该函数作用域内,局部变量会屏蔽(隐藏)全局变量。
· 1.3 一维数组传递
· 传递形式:传递数组名(首地址)和数组长度。
· 本质机制:形参中的数组写法本质上退化为指针,指向实参数组的首地址。
· 核心特性:函数体内操作数组元素,会直接影响外部的原始数组(与基本类型值传递有本质区别)。
· 1.4 一维字符数组(字符串)传递
· 传递形式:传递字符数组名(首地址),可依赖 '\0' 结尾特性省略长度参数。
· 核心特性:与整型数组一致,函数内修改字符串内容,外部实参同步改变。

---

二、 递归函数

· 2.1 定义:在函数定义中,直接或间接地调用函数自身。
· 2.2 构成三要素
· 结束条件(递归出口):必须存在一条分支不调用自身,直接返回确定结果。
· 递推关系:将原问题拆解为规模更小的同类子问题。
· 返回值传递:逐层将计算结果返回至上一层调用。
· 2.3 执行机制:遵循“递推”与“回归”两个阶段,先层层深入,再层层返回。
· 2.4 主要局限性
· 栈溢出风险:每次调用都会在栈区开辟新的栈帧,递归层次过深将耗尽栈内存。
· 效率低下:存在大量重复计算,时间和空间开销随递归深度显著增加。

---

三、 预处理命令

· 3.1 宏定义
· 不带参数的宏(常量宏)
· 性质:预处理阶段的纯文本替换,不进行任何语法或计算处理。
· 用途:定义常量值以提高代码可读性;作为配置开关,实现参数的快速批量调整。
· 带参数的宏(宏函数)
· 性质:纯文本替换,无类型检查,无函数调用开销(不涉及压栈与出栈操作)。
· 效率特性:执行阶段效率较高,但编译后的代码体积会随调用次数增加而膨胀。
· 适用范围:仅适用于封装简短、频繁调用的运算逻辑,不适用于复杂功能模块。
· 3.2 条件编译
· 作用:根据预设条件判断,决定哪些代码块参与编译,不满足条件的代码在编译阶段被丢弃。
· #if / #elif / #else / #endif:依据常量表达式进行条件控制。
· #ifdef 与 #ifndef:依据宏名是否已被定义进行条件控制。
· #ifdef:若宏已定义,则编译后续代码块。
· #ifndef:若宏未定义,则编译后续代码块(常用于防止头文件重复包含)。
· 3.3 头文件包含
· 作用:将指定头文件的全部内容原样展开并引入当前源文件。
· 搜索路径差异(双引号 vs 尖括号):
· #include <头文件>:仅查找系统标准库路径。
· #include "头文件":优先查找当前源文件所在目录,未找到再查找系统路径。
· 头文件标准内容规范:
· 构造数据类型定义(结构体、联合体、枚举)。
· 全局变量声明(使用 extern 关键字)与全局函数声明。
· 宏定义与类型重定义。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询