C语言形参和实参的区别

作者&投稿:冶亭 (若有异议请与网页底部的电邮联系)
c语言中形参和实参的区别?~

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

形参就是形式参数,用一个变量代表大家。实参就是实际参数,用一个 确切的数值代替形式参数,可以是表达式。实际参数与形式参数的参数个数、类型和顺序都应一样,如果不一样的话,系统会强制转换,这样会造成数据的丢失。实 参向形参的传递是值的传递。

这个值就是对实参的表达式进行计算的结果,它可以是常量值、变量值、数组元素、函数值等。如果实参是数组名了,那么它传送的就是地址的值了。比如:
double power(double x ,int n)定义一个双精度参数
power(3.0,5) 调用
x n 是形参,3.0,5是实参。如果上面定义的是整形 double power(int x ,int n),下面调用的是power(3.3,5)那么实参中3.3会被转换成3,一部分数据丢失了。

在函数定义中体现的参数,就叫形参,如:

int func( int a, int b ) //这里的a,b就是形参
{
    return a+b ;
}

在函数调用时,使用的参数就叫实参,如:

int main()
{
    int x,y,z;
    x=10;
    y=20;
    z=func(x,y); //在这里的x,y就是实参
    printf("z=%d
", z );
    return 0;
}



c语言中的实参与形参
函数point(char *p) {p+=3;} 定义时,这里的p就是形参,起传递参数的作用,没有具体值,但是它不能改变主程序中的p(形参和实参是两个相对应的变量,占有两个不同的存储空间,形参的值改变并不影响实参的值,两个是相互独立的。要想改形参里的值,必须采用传地址,即:将实参的地址传给形参,...

C语言中实参和形参分别存放在内存的什么位置?
形参只是一个符号,不会分配具体的空间的..当函数被调用的时候,具体给出的参数,也就是实参,其实是一份拷贝..它的内存空间在该函数的堆中进行分配.比如 定义函数 int add(int ,int); 在主函数中 定义变量 int x, y..调用函数 add(x, y);那么在函数add的堆中会分配出空间,来保存实参x y的拷贝..而主...

C语言中实参与形参有什么区别
形参的改变不会影响实参的值。调用函数时实参把值传给形参。

c语言形参和实参共占相同的存储空间?
无论是不是指针,形参实参都不是占用相同的空间。不是指针时,形参和实参的值是相等的;当是指针时,形参和实参都指向同一个地址(其实也就是*p(形参)和*q(实参)的值是相等的),但绝不是相同存储空间

C语言 一维数组 实参与形参与指针的问题
实参是a,它可以作为指针名使用,等同于指向首元a[0]的指针。形参int a[]等价于int *a,它指向实参a数组的首元a[0]的地址。

c语言带参宏替换的参数是形参还是实参
对于宏,即使是带参数的宏,也不能称为形参和实参。宏的调用,本身就是一种简单的替换,替换的部分,甚至本身并不是一个变量或者表达式,而只是一个变量的一部分。并不具备运行特征,即内存的分配和释放。宏的展开是在编译前,即所谓的预编译阶段就完成了,而形参实参的转换,是在运行阶段完成的。

C语言的问题(关于形参和实参的赋值问题)
调用函数有2种方式,传值和传地址。传值,就是你现在程序中的调用方式,这样不能够改变传递进来实参的值。传地址,就是形参是引用或者是指针,这样才能改变传递进来实参的值。这就是区别。

c语言函数调用时,实参和形参是如何传递的?什么时候要写指针型变量?求高...
函数调用时,实参值会自动传递给形参变量。指针比较复杂了。是变量的地址,如果参数类型是指针类型,则必须把实参变量的地址传递过去。当然在函数内也是间接引用实参变量的。比如 void f(int * p) \/\/形参是指针类型变量 下面是调用形式 f(&a); \/\/调用函数,实参是变量a的地址。

c语言函数的形参与实参的问题?
数组的数组(或数组的指针)和指针的数组(或指针的指针),当然是不同的两个类型。至于如何修改,需要你明确你的函数要处理数组的数组,还是指针的数组,再根据情况修改。如果是数组的数组,那么参数变为:testlength(char (*p)[max],注意这里只能是数或者宏,不能是变量,调用时实参不用变化 如果是...

java中形参和实参是占一个存储位置还是占两个
"执行方法的时候,如果是基本数据类型是分配栈里的内存 方法执行完,你的形参就消失了 如果是new出来的东西在堆里分配内存 "不错。我可以补充一些:一般地,对于一般的语言,形参是不会占有内存分配的,它只是用来在实参传入时匹配检测罢了,而对于实参,它是程序或线程 中实际存在的,会分配内配的。这...

威信县18053092296: C语言里面形参和实参怎么区分~?? -
佐狐赛福: 形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传如的参数. 实参:全称为"实际参数"是在调用时传递个该函数的参数.形参和实参的类型必须要一致,或者要符合隐含转换规则, 当形参...

威信县18053092296: c语言中形参与实参的区别? -
佐狐赛福: 形参 form parameter 实参 real parameter 出现在函数定义中的参数,就叫形参 出现在函数调用中的参数,就叫实参函数定义: int max( int a , int b ) //这里的a,b就是形参 {//在函数中,形参就可以当作是一个局部变量.if ( a>b ) return a;else ...

威信县18053092296: C语言中形式参数和实际参数的区别 -
佐狐赛福: 简单的说:形参只是相当于一个方程式里的未知数,没有实际的值. 而实参和具体数有关. 具体讲比较复杂,多比较一下就可以了解了,说起来比较麻烦!

威信县18053092296: C语言中形参和实参的区别与联系? -
佐狐赛福: 形参..你就当是写函数的时候对传入变量的别名好了.实参..程序运行的时候实际传入的值.会给形参赋值.

威信县18053092296: c语言中,形参和实参的区别是什么? -
佐狐赛福: 形参就是形式参数,用一个变量代表大家.实参就是实际参数,用一个 确切的数值代替形式参数,可以是表达式.实际参数与形式参数的参数个数、类型和顺序都应一样,如果不一样的话,系统会强制转换,这样会造成数据的丢失.实 参向形...

威信县18053092296: C语言中形参和实参的区别
佐狐赛福: 实参 和 形参,首先 肯定是两个 不同的变量, 如果不传递的不是地址,那么 形参 是 实参的,复制, 如果是 地址,那么形参是指针,内容是 实参的地址,指向实参, 实参是调用函数,传递的参数, 形参是 函数原形,定义的用来接收 参数的 参数

威信县18053092296: C语言中的形参和实参的定义是什么?有什么区别 -
佐狐赛福: 函数定义时候写的参数就是形参2113 调用函数,传递进取的参数就是实参举个例子吧,假设你定5261义一个 我要吃糖的函数:void 我要吃糖(string 某种糖) 这个就是4102形参了,因为这里只是个形式,并没有指1653明是给你什么糖吃,所专以是形参我要吃糖(棉花糖) 这个就是实参了,这样你就吃到棉花糖(实属参)了

威信县18053092296: C语言,形参和实参到底是怎么一回事 -
佐狐赛福: 形参是指一个可以复制的参数字母,是参是指带有具体指的,比如 void fun(char c)//这里的C就是形参;d=4; fun(d) ;这里的d就是实参.

威信县18053092296: c++语言中,形参和实参怎样区分? -
佐狐赛福: 形参:定义与普通变量完全一样的定义,比如:void func(int a)其中int a就是形参.形参不会影响传入值的变化(相当于拷贝原传入参数) 实参:除形参以外都是实参,传入数值受其改变而改变.引用类型都是实参比如void fun(int* a)和void func(int &a)

威信县18053092296: C语言中的形参与实参之间的区别是什么啊 -
佐狐赛福: 在主函数里的是实参,在子函数里的是形参.因为在真正执行的时候是把实参传递给形参来执行的,所以实参才是实际的参数.比如:int jjj(int a, int b) void main() { int x, int y; jjj(x, y); } a、b是形参,x和y是实参.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网