C语言中,实际参数和形式参数的区别

我知道大的概念是主函数中的参数和调用函数中的函数,而且参数可以由实参传向形参,而不能逆反传递。但是,就是搞不明白具体的情况,比如说,
#include <stdio.h>
void swap(int *a,int *b)
{
int *t;
t=a;a=b;b=t;
}
main()
{
int i=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d %d\n",*p,*q);
}
里面,哪些是形参,哪些是实参呢?

void swap(int *a,int *b) 中的a、b是形参,swap(p,q)中的p、q是实参。
至于为什么“参数可以由实参传向形参,而不能逆反传递”,你可以这样理解:
我们不妨把函数比作戏剧的剧本,把形参比做剧本中的人物;当我们要表演此戏剧的时候,我们肯定会让真实的演员(实参)去扮演(替换)剧本里的角色(形参),而绝不可能用剧中人去替代现实的演员!理解了上面的道理,你还会有问题吗?
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-04
函数调用时需注意的东西。函数定义中函数首部中的参数叫形参,调用函数时使用的参数叫实参。C函数调用采用“值传递”,比如有函数:
int
max(int
x,int
y)
{if(x>y)
return
x;
return
y;
}
在调用该函数时,有max(a,b);则该调用只把a(实参)的值赋给x(形参),把b(实参)的值赋给y(形参)。函数中对x,y的任何动作不改变a,b的值。值得注意的是如果用指针作参数,虽然符合上面原则,但对形参指向的数据的更改会影响实参指向数据的值。如函数:
int
swap(int
*x.int
*y)/*交换*/
{int
temp=*x;
*x=*y;
*y=temp;
}
则调用后swap第一个实参指向数据变为原第二个实参指向的数据,原第二个实参指向的数据变为第一个实参指向数据(因为指针的值是其指向数据的地址,该形参和实参指向同一个内存地址,形参对该地址存储值的改变,当然会影响到实参指向的地址存储值),但两指针指向(指向为其值)不变(上面的原则)。

C语言中,实际参数和形式参数的区别
1。形参未被调用时,不占存储单元。形参只在调用过程中占用存储单元。形参定义时必须指定类型!2实参是常量。变量或者表达式!要与形参类型一致!而且实参要有确定的值,在调用过程中实参将值赋给形参!3。c中实参对形参数据传递时时单向传递。在存储单元中是不同的单元!

c语言中形参和实参的区别?
有以下区别:1、主体不同:实参在调用有参函数时,函数名后面括号中的参数为“实际参数”。形参不是实际存在变量,又称虚拟变量。2、目的不同:实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。需要注意当形参和实参不是指针类型...

C语言中什么是形参,什么是实参?
形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。实参:全称为"实际参数"是在调用时传递给函数的参数,即传递给被调用函数...

C语言里面形参和实参怎么区分~??
形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传如的参数.实参:全称为"实际参数"是在调用时传递个该函数的参数.形参和实参的类型必须要一致,或者要符合隐含转换规则,当形参和实参不是指针类型时,在该函数运行时,形参和实 参是不同的变量,他们在内存中位于...

c语言中形参和实参的区别?
\\x0d\\x0a形参(parameter):\\x0d\\x0a\\x0d\\x0a全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有...

c++中函数实参和形参的区别有哪些?
代码在编译时会出现 error C2664: 'InsertSort' : cannot convert parameter 1 from 'int' to 'int []'这是因为用数组名做函数实参时,向形参(数组名或指针变量)传递的是数组首元素地址,因此对参数的类型做一下改变,如下图所示:

c语言中形参和实参是什么意思?有什么区别?
形参就是形式参数,用一个变量代表大家。实参就是实际参数,用一个 确切的数值代替形式参数,可以是表达式。实际参数与形式参数的参数个数、类型和顺序都应一样,如果不一样的话,系统会强制转换,这样会造成数据的丢失。实 参向形参的传递是值的传递。\\x0d\\x0a\\x0d\\x0a这个值就是对实参的表达式...

c语言中形参和实参的区别
形式参数和实际参数 函数的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把...

C语言中的形参与实参之间的区别是什么啊
形参是形式上的参数,实参就是实际的参数,你可以把形参理解成不是真正的参数,只是用来接收要传给他的实参的值,一般的,实参在主函数里面定义的要传给你的被调用函数的那些变量,儿形参则是在你的被调用函数进行定义的时候定义在被调用函数的参数,fun(int a, int b)a b就是形参,形参在被调用...

必须知道的C语言知识细节:函数形参和实参的区别
C语言中,函数形参与实参是核心概念,初学者常混淆。形参是函数声明时的参数声明,仅指明类型与名称,不实际分配内存或赋值。实参是函数调用时的实际参数值,具备真正的值与内存空间,实现参数传递。例如,函数定义与声明为 int sum(int a, int b),其中a与b为形式参数,指明需要整型参数。调用函数时,...

相似回答