实参和形参的区别,举例说明
时间: 2023-08-10 12:40:42 浏览: 1377
实参和形参是函数传递参数时的两种不同概念。
形参是函数定义时用于接收参数的变量,是函数头部声明的变量,通常在函数内部用来进行计算或操作。形参只有在函数被调用时才会被赋值。
实参是函数调用时传递给函数的参数,是函数调用时实际传递的值。实参可以是常量、变量或表达式。
例如,下面是一个函数的定义:
```
void myFunc(int x, int y) {
int z = x + y;
printf("x + y = %d\n", z);
}
```
在这个函数中,x和y就是函数的形参。当函数被调用时,需要传递实参给函数,例如:
```
myFunc(2, 3);
```
在这个例子中,2和3就是函数的实参,它们将分别传递给x和y。函数将计算x + y的结果,并输出3。
相关问题
在C语言中实参和形参举例
在C语言中,函数参数分为实参(Actual Parameters)和形参(Formal Parameters)。实参是调用函数时传递给函数的参数值,形参是在函数定义中声明的参数变量。实参传递给函数的值被赋给对应的形参,函数内部对形参的任何操作都不会影响到实参的值。下面通过一个简单的例子来说明实参和形参的区别:
```c
#include <stdio.h>
// 函数声明
void swap(int a, int b);
int main() {
int x = 10;
int y = 20;
printf("Before swap: x = %d, y = %d\n", x, y); // 输出交换前的值
// 调用函数swap,x和y作为实参传递给函数swap
swap(x, y);
printf("After swap: x = %d, y = %d\n", x, y); // 输出交换后的值
return 0;
}
// 定义函数swap,形参为a和b
void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
// 这里的操作不会改变main函数中的x和y的值
printf("Inside swap: a = %d, b = %d\n", a, b);
}
```
在这个例子中,`main` 函数中的变量 `x` 和 `y` 是实参,它们的值分别为10和20。在调用 `swap` 函数时,这两个值被传递给 `swap` 函数的形参 `a` 和 `b`。在 `swap` 函数内部,`a` 和 `b` 的值被交换,但是这个交换不会影响到 `main` 函数中的 `x` 和 `y` 的值。
c++中实参和形参的区别与说明
在C++中,形参(Parameters)和实参(Arguments)是函数定义和调用时的重要概念:
**形参**:
- 形参是在函数声明或定义时创建的一组变量,它们用于接收函数调用时传递的数据。
- 形参是局部的,只存在于函数的生命周期内,一旦函数执行结束,这些变量就自动销毁。
- C++函数定义中的参数列表就是形参的体现,如`void func(int a, double b)`中的`int a`和`double b`。
**实参**:
- 实参则是函数调用时实际传递给形参的值,可以是常量、变量或表达式。
- 当我们调用函数`func(10, 3.14)`时,`10`和`3.14`就是对应的实参。
- 实参在调用函数时传入,其值会被复制到形参中,对于简单类型的值(如基本类型),这是浅拷贝;对于复杂类型(如结构体或类),则是深拷贝或移动语义(取决于类型)。
举例来说[^1]:
```cpp
// 函数声明,形参
void showValues(int x, double y);
// 调用函数,实参
int num1 = 10;
double num2 = 3.14;
showValues(num1, num2); // 实参num1和num2的值传递给形参x和y
// 函数内部,形参的作用范围
void showValues(int x, double y) {
// 这里的x和y是临时的,离开函数就不可用了
std::cout << "x: " << x << ", y: " << y << std::endl;
}
```
阅读全文