在C语言中,定义一个函数的形参和实参之间具体是如何进行参数传递的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在C语言中,定义一个函数的形参和实参之间具体是如何进行参数传递的?相关的知识,希望对你有一定的参考价值。

参考技术A 传值调用和引用调用  传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。在引用调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上。

形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写void.main
函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。
形参和实参的对照实例(C语言版)  main()    int
n;  printf("input
number
\n");  scanf("%d",&n);  s(n);  printf("n=%d\n",n);    int
s(int
n)    int
i;  for(i=n-1;i>=1;i--)  n=n+i;  printf("n=%d\n",n);  
参考技术B 主要有两种:(1)值传递:在函数调用时,将实参的值复制一份传递到调用函数中,这样,如果在调用函数中修改了参数的值,也不会影响到实参的值。(2)引用传递:与(1)相反,即会影响实参的值。如何区分它们呢?实际上,通常在定义函数时,如果参数为数组、指针或引用类型时,函数采用引用传递,否则采用值传递。 参考技术C 函数中的形参和调用时的实参都是数组名时,传递方式为(
地址传递

此时形参和实参共用同一段内存
都是变量时,传递方式为(
值传递

实参与形参互不影响

在C语言中,函数实参与形参之间的数据传递方式是( )传递方式。

参考技术A 函数
实参

形参
之间的数据传递方式是(
值传递)传递方式,在C语言中,数据传递方式有值传递和引用传递,值传递:传值,实际是把实参的值赋值给行参,相当于copy。
那么对行参的修改,不会影响实参的值
。引用传递:
实际是传值的一种特殊方式,只是他传递的是地址,不是普通的赋值,那么传地址以后,实参和行参都指向同一个对象,因此对形参的修改会影响到实参。
扩展资料
传值调用中,只使用了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。在引用调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上。
引用传递是将变量的内存地址传递给方法,方法操作变量时会找到保存在该地址的变量,对其进行操作。会对原变量造成影响。可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。
参考资料:百度百科—引用传递

以上是关于在C语言中,定义一个函数的形参和实参之间具体是如何进行参数传递的?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中形参和实参的区别是啥?

在C语言中,函数实参与形参之间的数据传递方式是( )传递方式。

C语言中的函数心形参和实参分别可以为哪几种类型?函数实参可以使任意类型。。。。错在哪?

在C语言中,函数实参与形参之间的数据传递方式是( )传递方式。

C中数组在函数中形参和实参的区别

什么是形参和实参?参数传递的方式都有哪些?