Ⅰ c语言函数中的实参和形参是什么意思啊我老是看不懂 谢谢了
顾名思义,形参只是为了塑造一个函数的外形.比如max(x,y),这里x和y我们叫它形参.而我们有两个数a=10,b=8,把a和b赋值给max函数的话,就可以比较a和b的最大值,那么a,b在这里就叫做实参,是实际输入的值.
你自己复制的不是很清楚吗,解释的很好.
Ⅱ c语言中参数是什么概念
函数的参数分为形参和实参两种。
形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。
形参和实参的功能是作数据传送,发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
举个例子:
定义一个函数s=f(a,b),功能是将a和b的差赋值给s,那么,a和b就是这个函数的两个参数。
(2)C语言行参变量是什么扩展阅读:
C语言的参数传递方式
方法有3种方式:值传递、地址传递、引用传递
tips:
被调用函数的形参只有函数被调用时才会临时分配存储单元,一旦调用结束占用的内存便会被释放
值传递和地址传递,传递的都是实参的一个拷贝
C语言中实参和形参之间的数据传递是单向的“值传递”,单向传递,只能由实参传给形参,反之不行
输出格式并没有选择%p而是选择了%d,因为十进制的数看起来更直观。
值传递
如果只是传递值的话:
#include <stdio.h>
//值传递传值
void swap( int x, int y);
int main()
{
int a=2,b=3;
printf("before:实参为a,b a=%d,地址为%d b=%d,地址为%d ",a,&a,b,&b);
swap(a,b);
printf("after:实参为a,b a=%d,地址为%d b=%d,地址为%d ",a,&a,b,&b);
return 0;
}
void swap(int x,int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("inside:形参为x,y x=%d,地址为%d y=%d,地址为%d ",x,&x,y,&y);
}
Ⅲ c语言中形参和实参的区别是什么
形式参数和实际参数
函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
函数的形参和实参具有以下特点:
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。可见实参的值不随形参的变化而变化。
Ⅳ C语言函数中的形参和实参分别是指什么
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。
1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元。因此,形参只有在函数内部有效。 函数调用结束返回主调函数后则不能再使用该形参变量。
2.实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
3.实参和形参在数量上,类型上,顺序上应严格一致, 否则会发生“类型不匹配”的错误。
4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。
Ⅳ C语言中,什么是形参和实参最好能举个例子!
形参和实参其实没有实质区别,都是值传递。
形式上你可以发现实参是可以在其他函数里面修改的~
形参和实参最大的区别就是形参能够虽然也能够进行值得修改,但是只能够在函数内部,而实参是可以在全局范围内修改变量的值~这里需要提的是C语言有全局和局部的概念~形参就是仅仅的值传递,而当你的值传递到函数内部的时候,这个时候函数内修改的参数的地址已经不是主函数的变量地址了~也就是是说函数内对数值的任何修改都对主函数的变量没有任何影响
与之相对的实参,一般是通过指针的形式,它虽然也是传递值,但是这个值是地址,所以呢,你可以发现,地址传过去了,那么就可以像一根指针一样远程操纵者主函数内部的变量。
下面这个例子我都写好了,记住是VisualStudioC++的运行环境啊~别用TC了~
#include<stdio.h>
int main()
{
void max1(int *a,int *b);//实参例子
void max2(int c,int d);//形参例子
int *x,*y;
int e,f;char k;
printf("请输入两个数字,格式为:”数字,数字“(不包括引号)");
scanf("%d,%d",&e,&f);
printf("请输入你要演示的例子:\n 1.实参例子 \n 2.形参例子");
getchar(k);
switch(k)
{
case'1':{
x=&e;y=&f;max1(x,y);printf("这是在主函数输出的数据:e=%d,f=%d",&e,&f);
}
case'2':{max2(e,f);
printf("这是在主函数输出的数据:e=%d,f=%d",&e,&f);}
default:printf("error\n");
}
return 1;
}
void max1(int *a,int *b);//实参例子
{
int c;
if(*a>*b)
{
c=*a;*a=*b;*b=c;
}
printf("这是在max1函数输出的数据:e=%d,f=%d",a,b);
}
void max2(int c,int d);//形参例子
{
int g;
if(c>d)
{
g=c;c=d;d=g;
}
printf("这是在max2函数输出的数据:e=%d,f=%d",a,b);
}
Ⅵ C语言中什么是形参,什么是实参
形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。实参是一个确定的值。
void sort(int arr[], int n)中arr[]和n就是形参,sort(arr[5], 5)中arr[5]和5就是实参
Ⅶ C语言中什么是形参,什么是实参
形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。
形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。
实参:全称为"实际参数"是在调用时传递给函数的参数,即传递给被调用函数的值。
实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。
(7)C语言行参变量是什么扩展阅读:
形参和实参的特点:
1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。
3、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误。
4、在一般传值调用的机制中只能把实参传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参值发生改变,而实参中的值不会变化。而在引用调用的机制当中是将实参引用的地址传递给了形参,所以任何发生在形参上的改变实际上也发生在实参变量上。
参考资料来源:网络-形参
参考资料来源:网络-实参
Ⅷ C语言中实参与行参是怎么回事
形参启神:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传如的参数.
实参:全称为"实际参数"是在调用时传递个该函数的参数.
形参和实参的类型必须要一致,或者要符合隐含转换规则,
当形参和实参不是指针悄知亏类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,
而实参内容不会改变.
而如果函数的参数是指针类型变量,在调用该函数的过程
中,传个函数的是实参的地址,在函数体内部使用的也是实参的地址,即使用的就是实参本身.所以在函数体内部可以改变实参的值.
给你一个很简单的例子:
int
f(int
b)
/*b为形参*/
{
return
b;}
main()
{int
a=1;
printf("%d",f(a));/猛配*a为实参*/
}
Ⅸ 在C语言中,什么是函数的行参和实参他们分别有什么作用分别出现在什么位置
比如float fun(int i,int j);是函数原型声明,float fun(int,int);可以不写变量名,是形参;
然后x=fun(i,j);是函数调用,传递给他的是实参。
在下来float fun(int a,int b){……} 是函数定义,参数是形参。