C#中形参和实参有什么区别和联系?

如题所述

形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。

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

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

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

4.函数调用中发生的数据传送是单向的。 即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。


例如

//定义获取用户的带参方法,其中userID就是形参
public void getUserName(string userID){}

int id=18;
getUserName(id);调用获取用户名的方法,其中id就是实参

追问

我调试例子时好像不行

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-02
一般在方法里才分
一般形参 public void sleep(string name),这里的name就是形参,就是一个形式,它可以变化!
而实参就是实际的变量!!比如string name="ai";

C#中形参和实参有什么区别和联系?
形参出现在函数定义中,在整个函数体内都可以使用, 离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。 形参和实参的功能是作数据传送。发生函数调用时, 主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。1.形参变量只有在被调用时才分...

c#的形参和实参有什么用
1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。2、实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给...

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

形参形参和实参的关系
形参和实参是编程中两个关键概念,它们在函数调用过程中起着传递数据的作用。形参是函数定义时设定的变量,用于接收实参传递的值,它们在函数内部创建,仅在函数调用期间存在,函数结束时自动释放内存。实参则是实际传递给函数的值,可以是常量、变量、表达式或函数返回值,必须在调用前具有确定的值。它们可以...

在C#中什么是形参、什么是实参?
其他语言都是一样的吧 main(){ int a=1;fun(a); \/\/ 这里的a ,传到fun函数里,在这里,这个a 是实参 } fun( int b){ b=b+1; \/\/这里的b ,是函数里面定义的,是形式参数,它接受调用时实参的值。}

C++里面 函数的形参 是什么意思
形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写void.main 函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。形参和实参的特点 1、...

c#方法的参数类型主要有哪三种类型?
C#参数类型有四种:值类型 引用类型 输出类型 数组型参数C#参数类型(1):值参数所谓值参数,就是利用值向方法传递参数时,编译程序给实参的值做一份拷贝,并将此拷贝传递给该方法,这样做的结果就是被调用的方法不会修改实参的值,保证了实际值的安全,在调用方法时,如果形参的类型时值类型的话,必须保证...

如何理解C语言函数参数传递调用的原则一一对应?
具体来说,C 语言中的函数参数传递有以下几个特点:1. 参数顺序:实参与形参的对应是按照它们在参数列表中的顺序进行的。也就是说,第一个实参将与第一个形参对应,第二个实参将与第二个形参对应,以此类推。2. 参数类型:实参的类型必须与形参类型匹配。C 语言是静态类型的语言,因此在函数调用时...

C#中方法参数传递机制
二、值参数与引用参数及输出参数的区别:2.1 值参数中实参的值不随形参值变更而变更;形参与实参值互不影响,实参传递给形参时,堆栈中就为其分配另外一部分空间。这样,两个参数变更时而互不影响。2.2 引用参数及输出参数中实参的值会随形参值变更而变更 (形参:在定义函数中指定的形参,在未出现...

c#传递引用对象作为参数的时候就没有必要用ref关键字,对吗
传递引用对象时添加ref关键字和不添加还是有不同的。不添加ref关键字时,作为方法参数的形参与实际传入的实参实际上是两个对象,在栈中有两个地方分别保存它们的名字,假设形参叫A,实参叫B。只是引用对象保存的本来就是地址,所以这两个对象的值“恰好”指向堆中的同一个地方,假设这个地方叫C,对这...

相似回答