问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-05-18 19:41

我来回答

5个回答

热心网友 时间:2023-10-27 14:27

有以下区别:
1、主体不同:实参在调用有参函数时,函数名后面括号中的参数为“实际参数”。形参不是实际存在变量,又称虚拟变量。
2、目的不同:实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。
需要注意当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。

热心网友 时间:2023-10-27 14:27

形式参数和实际参数
函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
函数的形参和实参具有以下特点:
1. 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量。
2. 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。
3. 实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。
4. 函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。

【例】可以说明这个问题。
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);
}

本程序中定义了一个函数s,该函数的功能是求∑ni的值。在主函数中输入n值,并作为实参,在调用时传送给s 函数的形参量n( 注意,本例的形参变量和实参变量的标识符都为n,但这是两个不同的量,各自的作用域不同)。在主函数中用printf 语句输出一次n值,这个n值是实参n的值。在函数s中也用printf 语句输出了一次n值,这个n值是形参最后取得的n值0。从运行情况看,输入n值为100。即实参n的值为100。把此值传给函数s时,形参n的初值也为100,在执行函数过程中,形参n的值变为5050。返回主函数之后,输出实参n的值仍为100。可见实参的值不随形参的变化而变化。

热心网友 时间:2023-10-27 14:28

高级语言在设计程序模块时,模块名定义后,紧跟其后所定义的参数(括弧内)被称为形参(也称虚参)。当该模块被调用时,在主调模块中,出现在被调用的模块名后的参数被称为实参。实参代替虚参的过程被称为虚、实结合,也称换参。多数高级语言的换参是由编译系统来完成,比如C语言和FORTRAN语言亦是如此。BASIC语言的换参则是由程序设计人员来完成的。如果只允许实参向虚参传递,则被称为“单向传递”,C语言的变量类虚、实结合即是“单向传递”。如果同时允许虚参向实参传递,这种传递被称为“双向传递”,FORTRAN 语言定义的子程序即是如此。

热心网友 时间:2023-10-27 14:28

1、形参 form parameter
实参 real parameter
出现在函数定义中的参数,就叫形参
出现在函数调用中的参数,就叫实参

2、例如:
函数定义:
int max( int a , int b ) //这里的a,b就是形参
{
//在函数中,形参就可以当作是一个局部变量。
if ( a>b ) return a;
else return b;
}
函数调用
int main()
{
int a=3,b=5 ;

printf( "max=%d\n" , max(a,b) ); //这里的a,b就是实参 C中的函数参数传递是传递变量的数值,因此,这里相当于调用 max(3,5) 而子函数中收到的就会是 3 5这两值,而与ab变量没有关系。
return 0;
}

热心网友 时间:2023-10-27 14:29

在c中由于函数的调用就伴随着接口的问题。
一个函数就是用来实现一个功能的,
如:
#include<stdio.h>

int add(int a,int b)//把两个数相加
{
int c;
c=a+b;
return c;
}
int main()
{
int num1;
int num2;
printf("输入两个数:\n");
scanf("%d,%d",&a,&b);
printf("%d",add(num1,num2));
return 0;
}
它相当于一个处理数据的机器,而数据就是原材料,这就需要一个材料的输入口,就是函数设计的接口,在这个过程中我们首先定义了一个函数add(int a,int b)(制造了一台机器),在定义这个函数的时候由于我们只是赋予它这个使两个数相加的功能,但是定不知道它将把那两个数相加,所以就先给它设定是对a,b相加,(就像我们只是造了机器,知道它的作用而没有原料)这时的a,b就是形参,即它只是一个形式上的数据,是定义在函数中的。
而实参就是在调用函数的时候要向形参传递值,如num1,num2,(它就是机器要开工时需要的原料,有了它机器才能进行加工),我们实际上是要吧num1,num2相加,只是在主函数里写代码太繁杂,就把代码写到函数里边。这时形参a,b被赋予了num1,num2的值后就可以代替num1,num2在add函数体中完成本想对num1,num2进行的操作(至于为什么要用实参形参还涉及到数据的作用域的问题)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...最好是粉蓝绿之类的 大屏幕 前后摄像头 三星HTC索爱等都可 不要... ...3000左右的机子,htconex的水货怎么样与三星i9100比哪个更好一点,适... 私密照片适用机型 ...看上了三星的i9100和HTC的g19和索尼lt26 不知道选择哪一部 求大神... ...全部歌词?歌词大概……那是一个夜晚……我和谁谁媳妇缠绵…_百度知 ... 老年人缺铁性贫血有哪些症状 酪梨虾是什么 诺基亚C7无法使用OVI套件在电脑上升级地图。 我用ovi套件更新软件总手机重启后提示连接失败,跪求高人指点。。。_百... 我nokia2730c用ovi套件升级成v7.75版,结果变成全英文(设置语言修改没用... C语言的形式参数和实际参数的定义以及区别,怎样很好的理解,谢谢。 微信怎么换声音 c语言中,形参和实参是什么意思?有什么区别? c语言中,形参和实参的区别是什么? c语言里的形式参数和实际参数问题 蜂蜜水有多项身体调节作用,怎么选购适合饮用的蜂蜜? 想给一对姓李的男孩女孩起名字,多谢大家~ g4studio的架构体系 大家帮忙起个好听的名字 国泰君安大智慧图标不见了 大智慧图标上阴影是什么意思 大智慧图标隐藏 如何更改任务栏里的大智慧图标 丹阳智慧人的图形是什么 有什么图形或者标志能表示出智慧 怎样办理广州市买房个人所得税税单的? 补缴广州买房个人所得税如何办理 广州市买房要税单,税单怎么办啊!!!要很多资料???怎么弄!!! 什么是智力的标志? 电饭煲蛋糕怎么做,蛋糕怎么发不起 C语言形式参数和实际参数分别是什么,最好举个简单的例子 c语言形参和实参 c语言中的实际参数和形式参数怎么区分? 在C语言中,实际参数与形式参数之间有什么区别啊? c语言中什么叫形参,什么叫实参?来权威解释,我的理解就是形式参数和实际参数。在被调用的函数里的是形 请问C语言中的实际参数和形式参数二者是否都属于变量? 我想制作一个视频:我在一个视频里有两个我在干不同的事情,求视频帝解答,(用什么软件,详细教程) 类似老王搞事 建哥往事 炮哥出击 那种 打压社会人那种 最好有真干的 看 对于那种恶搞拜金女的视频你怎么看,我感觉这些人有病别人怎么样,关你什么事啊他们做这种事他们不觉得 想做像帮主扒点档那种视频,看图,暴走大事件诈骗专题也用过这种形式 求那种视频,好心人做做好事 喷枪喷完色漆怎么清洗 泡沫填充剂的喷枪用什么清洗 水性醇酸树脂漆喷枪一般使用什么清洗剂或清洗液? 喷枪清洗 耐侯木油 能用喷*喷吗??用什么稀释?最后喷*用什么清洗呢??望指导。。。 昨晚喷枪忘记洗了,清漆在里面干了但没有干透,我想问该怎么清洗啊 喷石墨乳的喷枪好清洗吗? 提取过公积金对公积金贷款买房有影响吗 提取公积金后对后续买房有无影响?