为什么需要理解形参与实参?
在 C 语言开发中,函数是模块化设计的基石。很多时候我们直接调用标准库函数,但理解其内部机制有助于写出更稳健的代码。今天我们就通过一个经典案例——模拟 pow() 函数,来理清'形参'和'实参'的关系。
核心代码实现
下面这段代码展示了完整的流程。注意头文件的引入以及函数的声明与定义。
#include <stdio.h>
// 自行实现 pow 函数
// 求第一个参数的 n 次幂
// double num1, int num2 --- 形式参数
double power(double num1, int num2);
int main() {
// 实际参数 -- 调用
printf("%d 的%d次幂等于:%.2lf\n", 8, 4, power(8, 4));
return 0;
}
double power(double num1, int num2) {
double result = 1;
int i;
for(i = 0; i < num2; i++) {
result *= num1; // 累乘
}
return result;
}
关键点解析
大家可能注意到了,main 函数里的 power(8, 4) 传递的是具体的数值,这就是实际参数。而在 power 函数定义处,double num1, int num2 只是占位符,被称为形式参数。
当函数被调用时,实参的值会按顺序传递给形参。在这个例子里,num1 接收了底数,num2 接收了指数。
算法逻辑上,实现幂运算最直观的方法就是循环累乘。初始化结果为 1,然后循环 num2 次,每次将结果乘以底数。
这里有一个小细节,虽然数学上负指数也是合法的,但为了简化教学,本示例仅处理非负整数指数的情况。实际工程中可能需要考虑更多边界条件,比如除零错误或溢出风险。

