c语言中形参和实参的传递方式(c语言函数的实参传递到形参有两种方式)

传递方式的概述

C语言中,形参和实参是函数参数传递中的两个重要概念。形参是在函数定义中声明的变量,用于接收函数调用时传递的实参;实参是在函数调用中实际传递的值或变量。形参和实参之间的传递方式可以分为值传递、引用传递和指针传递三种方式。

值传递

值传递是指在函数调用时,将实参的值拷贝给对应的形参。这种传递方式的特点是形参的修改不会影响实参的值。

例如:

```c
#include

void changeValue(int num) {
num = 10;
}

int main() {
int num = 5;
changeValue(num);
printf("num的值为:%d", num); // 输出num的值为:5
return 0;
}
```

在上面的例子中,changeValue函数的形参num被赋值为实参num的副本,修改形参num的值并不会影响实参num的值。

引用传递

引用传递是指在函数调用时,将实参的地址传递给对应的形参。这种方式可以使形参和实参指向同一块内存空间,从而使形参的修改影响实参的值。

例如:

```c
#include

void changeValue(int *num) {
*num = 10;
}

int main() {
int num = 5;
changeValue(&num);
printf("num的值为:%d", num); // 输出num的值为:10
return 0;
}
```

在上面的例子中,changeValue函数的形参num是一个指针变量,指向了实参num的内存地址。通过对形参num解引用并修改其值,实际上就修改了实参num的值。

指针传递

指针传递是引用传递的一种特例,它是指在函数调用时,将实参的指针传递给对应的形参。通过指针传递,可以在函数内部直接修改指针所指向的内存空间的值。

例如:

```c
#include

void changeValue(int **num) {
**num = 10;
}

int main() {
int num = 5;
int *ptr = #
changeValue(&ptr);
printf("num的值为:%d", num); // 输出num的值为:10
return 0;
}
```

在上面的例子中,changeValue函数的形参num是一个指向指针的指针变量。通过双重解引用,可以在函数内部修改实参num的值。

通过上述的例子可以看出,C语言中形参和实参之间的传递方式可以根据需求选择不同的方式。值传递适用于实参的值不需要在函数调用后修改的情况,而引用传递和指针传递适用于需要在函数内部修改实参的值的情况。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/cyy3sr6.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年7月27日 上午11:16
下一篇 2023年7月27日 上午11:16

猜你喜欢