C++ 实际参数和形式参数

2024 年 8 月 28 日 | 3 分钟阅读

C++ 中的实际参数和形式参数分别指函数传递和接收的值。函数定义指定其形式参数的数量、类型和名称,而函数调用提供相应的实际参数。将实际参数与形式参数匹配的过程称为函数调用绑定或参数传递。

C++ 支持多种参数传递机制,包括值传递、引用传递和地址传递。在值传递中,实际参数的副本被传递给函数并存储在相应的形式参数中。在引用传递中,实际参数的地址被传递给函数,形式参数成为实际参数的别名,允许函数修改其值。在地址传递中,实际参数的地址被传递给函数,形式参数成为实际参数的指针,允许函数间接修改其值。值传递是 C++ 中默认的参数传递机制。当实际参数通过值传递时,会创建参数的临时副本并存储在相应的形式参数中。函数对副本进行操作,而不是原始参数。这意味着对形式参数所做的任何更改都不会反映在实际参数中。

当函数需要修改实际参数的值时,使用引用传递。在引用传递中,实际参数的地址被传递给函数,形式参数成为实际参数的别名。这允许函数直接修改实际参数的值。要通过引用传递参数,在函数定义中将 & 运算符放在形式参数之前。当函数需要间接修改实际参数的值时,使用地址传递。在地址传递中,实际参数的地址被传递给函数,形式参数成为实际参数的指针。这允许函数使用指针间接修改实际参数的值。要通过地址传递参数,在函数定义中将 * 运算符放在形式参数之前。

参数传递机制的选择取决于函数的需求。如果函数只需要读取参数的值,则值传递就足够了。如果函数需要修改参数的值,则可以使用引用传递或地址传递,具体取决于修改应该是直接还是间接的。

C++ 代码

输出

Actual Arguments: 5, 10
The sum of 5 and 10 is: 15

说明

该代码演示了 C++ 中实际参数和形式参数的使用。它包含一个函数 `print_sum`,该函数接受两个整数参数 `a` 和 `b` 并计算它们的和。然后函数打印结果。`main` 方法调用 `print_sum` 函数并传递两个整数值 `num1` 和 `num2` 作为实际参数。在 C++ 中,当调用函数时,传递给函数的值称为实际参数。函数定义中指定的参数称为形式参数。形式参数充当实际值的占位符,这些实际值将在调用函数时传递给函数。在此代码中,`a` 和 `b` 是 `print_sum` 函数中的形式参数。在 `main` 方法中,`num1` 和 `num2` 分别赋值为 5 和 10。当 `main` 方法中调用 `print_sum` 函数时,`num1` 和 `num2` 的值作为实际参数传递给 `a` 和 `b`。`print_sum` 函数计算 `a` 和 `b` 的和,并将结果存储在 `sum` 变量中。