当前位置:首页 » 编程语言 » c语言形参和实参能互传吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言形参和实参能互传吗

发布时间: 2023-08-17 04:17:47

c语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是

答案是B,单向的值传递

简单变量做实参时,相应的形参变量也是简单变量,它们之间的数据传递方式是单向的值传递,即数据只能由实参传到形参,形参值的改变不影响实参值的变化。

(1)c语言形参和实参能互传吗扩展阅读:

形参和实参的特点:

1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。

2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。

3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。

4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。

参考资料:网络——形参

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

主要有两种:(1)值传递:在函数调用时,将实参的值复制一份传递到调用函数中,这样,如果在调用函数中修改了参数的值,也不会影响到实参的值。(2)引用传递:与(1)相反,即会影响实参的值。如何区分它们呢?实际上,通常在定义函数时,如果参数为数组、指针或引用类型时,函数采用引用传递,否则采用值传递。

③ 关于c语言 在c中调用函数时,只能把实参的值传递给形参,形参的值不能传给实参。这句话对吗为什么

比如定义

int f(int b) 这里的b就是形参

在调用的时候

我们写 f(a) 这里的a是本地变量,调用f的时候叫做实参

在f(a)后,函数f里的形参b的值是a赋予的,所以实参的值传递给形参这句话是对的

形参的值不能传给实参这句话在严格意义上来说也是对的,

比如,你在函数f(int b)里面写 b= 1000; 对于实参a来说并没有任何影响。

但是,如果你的函数定义是指针,那么函数可以改变指针上储存的内容,但是不能改变指针本身。如果从这点考虑的话,实参是可以通过形参给改变的

④ c语言形参的值能不能传递给实参

形参和实参拥有分别的存储空间,即便是指针传递,改变的也只可能是这个指针变量所指向的内容,而不是指针变量本身的值,也即,如有指针变量p,那对实参的变化,有可能改变的也只是*p的值,而不是p本身的值。

实参和形参在英文中,argument和parameter经常可以互换使用,但是C99标准规定了:

对于actualargument或actualparameter使用术语argument(译为实参);对于formalargument或formalparameter使用术语parameter(译为形参)。

为遵循这一规定,我们可以说形参是变量,实参是函数调用提供的值,实参被赋给相应的形参。因此,在上述示例中,times是pound()的实参,n是pound()的形参。类似地,在函数调用pound(times+4)中,表达式times+4的值是该函数的实参。

(4)c语言形参和实参能互传吗扩展阅读

函数的调用

第1个函数调用是pound(times),times的值5被赋给n。因此,printf()函数打印了5个井号和1个换行符。第2个函数调用是pound(ch)。

这里,ch是char类型,被初始化为!字符,在ASCII中ch的数值是33。但是pound()函数的参数类型是int,与char不匹配。

程序开头的函数原型在这里发挥了作用。原型(prototype)即是函数的声明,描述了函数的返回值和参数。pound()函数的原型说明了两点:

-该函数没有返回值(函数名前面有void关键字);-该函数有一个int类型的参数。

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

函数实参与形参之间的数据传递方式是( 值传递)传递方式,在C语言中,数据传递方式有值传递和引用传递,值传递:传值,实际是把实参的值赋值给行参,相当于。

那么对行参的修改,不会影响实参的值 。引用传递: 实际是传值的一种特殊方式,只是他传递的是地址,不是普通的赋值,那么传地址以后,实参和行参都指向同一个对象,因此对形参的修改会影响到实参。

(5)c语言形参和实参能互传吗扩展阅读

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

引用传递是将变量的内存地址传递给方法,方法操作变量时会找到保存在该地址的变量,对其进行操作。会对原变量造成影响。可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。

⑥ C语言中的基本数据类型作为实参时,它和对应的形参之间数据传递方式为数值传递形参值改变影不影响实参

对,c语言函数调用过程中的参数传递过程是值传递过程,形参在函数执行完毕后即被销毁,实参的值不会被改变。若想使用函数修改实参的值前脊,慧伍渗可以使橘游用指针或者引用的方式声明函数参数

⑦ 关于C语言里实参和形参传递

voidfun(inta,intb){

intt;

t=a;

a=b;

b=t;

}

确实执行了操作,但是操作结果无法返回到main()函数,因此结果不变.

可通过指针传递地址,改正如下(但是我不太明白你的程序的意思):

#include<stdio.h>

voidfun(int*a,int*b)

{intt;

t=*a;*a=*b;*b=t;

}

main()

{intc[10]={1,2,3,4,5,6,7,8,9,0},i;

for(i=0;i<=10;i+=2)fun(&c[i],&c[i+1]);

for(i=0;i<10;i++)printf("%d",c[i]);

printf(" ");

getch();

}