在C语言中,形参(形式参数)和实参(实际参数)是函数定义和调用中的两个重要概念。它们之间的主要区别如下:
1. 定义
形参(Formal Parameter):
- 是函数定义时在函数头部指定的参数。
- 形参的作用是接收传入函数的值或引用,作为函数内部使用的变量。
- 形参在函数调用时被赋予实参的值。
- 语法示例:
void function(int a, float b) { // a 和 b 是形参 }
实参(Actual Parameter):
- 是在函数调用时传递给函数的实际值或变量。
- 实参可以是常量、变量、表达式等,传递给形参。
- 语法示例:
function(5, 3.14); // 5 和 3.14 是实参
2. 使用时机
形参:
- 在函数定义时被创建。
- 存在时间:形参的生命周期仅限于函数的调用过程中。
实参:
- 在函数调用时被访问。
- 存在时间:实参的生命周期与其声明的作用域相同。
3. 作用域
形参:
- 其作用域限于函数内部,可以在函数体内使用。
- 遇到函数返回后,形参的值会被销毁。
实参:
- 其作用域根据其定义位置而定,在函数外的实参可以在函数外部访问,而局部变量则不能。
示例
以下是一个简单的示例,帮助理解形参和实参的区别:
#include <stdio.h>
void add(int x, int y) {
// x 和 y 是形参
printf("Sum: %d\n", x + y);
}
int main() {
int a = 10;
int b = 20;
add(a, b); // a 和 b 是实参
add(5, 15); // 5 和 15 也是实参
return 0;
}
在该示例中:
- 在
add
函数中,x
和y
是形参。 - 在
main
函数中,a
和b
是实参的一个例子,同时5
和15
也是另一个例子。
总结
形参是在函数定义时出现的变量,用于接收实参并在函数体内操作;而实参是在调用函数时传递给函数的实际值或变量。形参和实参的一一对应关系在函数调用时确保了函数的灵活性和重用性。