函数参数是定义还是赋值
文章目录
- 函数定义时形参是定义
- 函数调用时形参是赋值
函数定义时形参是定义
在函数定义阶段,像 int add(int a, int b)
里的 a
和 b
属于形参,此时它们是一种占位符,用于表明函数接收的参数类型和数量。这其实是在定义函数接口,为函数内部使用这些参数做好准备。从语法层面来看,这是变量的定义过程,只是这些变量没有具体的值。例如:
// 函数定义,这里的 a 和 b 是形参的定义
int add(int a, int b)
{
return a + b;
}
函数调用时形参是赋值
当调用函数时,会把实参传递给形参。比如 add(3, 5)
,这里的 3
和 5
是实参。在函数调用的过程中,系统会把实参的值复制给对应的形参,也就是给形参赋值。以 add(3, 5)
为例,3
会被赋值给形参 a
,5
会被赋值给形参 b
。以下是完整的调用示例:
#include <iostream>
// 函数定义
int add(int a, int b) {
return a + b;
}
int main() {
// 函数调用,3 和 5 是实参
int result = add(3, 5);
std::cout << "Result: " << result << std::endl;
return 0;
}
在这个例子中,调用 add(3, 5)
时,实参 3
和 5
分别给形参 a
和 b
赋值,函数内部就使用这些赋值后的形参来执行 a + b
的操作。
综上所述,函数定义时形参是定义过程,而函数调用传参时,是对形参进行赋值操作。 其实内部只是压栈的操作。