函数实参和形参的区别

合集下载

西门子S7-300形参与实参

西门子S7-300形参与实参

我爱自动化
will666
侠士
经验值: 1389
发帖数: 926
精华帖: 5
主题:回复:什么叫实参什么叫形参
2010-11-04 21:16:34 4楼
比如你编写了一个块,有两个输入a,b,一个输出c,然后程序里面做加法c=a+b。这个abc就是形参,没有调用之前他们是不存在的。然后你调用这个快,在输入引脚使用了A,B,输出引脚使用了C,那么ABC就是实参,他们是实实在在有值的。
比喻的太形象了,很生动!建议加精!
智慧人生 品味舍得
300小小生
侠客
经验值: 831
发帖数: 626
精华帖: 1
主题:回复:什么叫实参什么叫形参
2010-11-20 14:18:17 21楼
呵呵,论坛里的高手就是多,可以把书本里的知识点比喻的这么生动。结合STEP7里具体点说可以是,假如我们有1个功能块FB1,功能FC1,几个FB1的背景数据块。在FB1里写公式 a+b+c,这里a,b,c就是形参。而在FC1里我们定义在I0.0=1时调用FB1,并令a=1,b=2,c=3.此时1,2,3就是实参。而定在I0.1=1时调用FB1,令a=10,b=20,c=30,此时10,20,30也是实参。建议楼主可以找个实例程序看看就很明白了
发帖数: 3984
精华帖: 18
主题:回复:什么叫实参什么叫形参
2010-11-15 13:57:45 14楼
举例说明:
例:
3X + 2Y =5Z
当X=48,Y=22,求Z?
其中X,Y,Z就是形参。48,22就是实参。
一日三省吾身

C++Primer中文版_第4版_第七章_函数_习题解答_文字word版

C++Primer中文版_第4版_第七章_函数_习题解答_文字word版

第七章函数题目00What is the difference between a parameter and an argument?形参和实参有什么区别?【解答】形参是在函数定义的形参表中进行定义,是一个变量,其作用域为整个函数。

而实参出现在函数调用中,是一个表达式。

进行函数调用时,用传递给函数的实参对形参进行初始化。

题目01Indicate which of the following functions are in error and why. Suggesthow you might correct the problems.下列哪些函数是错误的?为什么?请给出修改意见。

(a) int f() {string s;// ...return s;}(b) f2(int i) { /* ... */ }(c) int calc(int v1, int v1) /* ... */ }(d) double square(double x) return x * x;【解答】(a)是错误的。

因为函数头中所定义的返回值类型为int,return语句世纪返回的表达式的类型为string,两个类型不同,而string类型又不能隐式转换为int类型。

可修改为:string f(){string s;//…Return s;}(b)是错误的。

因为该函数定义中没有指定返回类型,在标准C++中,定义函数时不指定返回类型是非法的。

可修改为:Int f2(int i){/*…*/}(c)是错误的。

缺少括住函数体在左花括号,而且两个形参不应该同名。

可修改为:Int caic(int v1,intv2){/*…*/}(d)是错误的。

缺少括住函数体的一对花括号。

可修改为:Double square(double x){return x*x;}题目02Write a program to take two int parameters and generate the result ofraising the first parameter to the power of the second. Write a programto call your function passing it two ints. Verify the result.编写一个带有两个int 型形参的函数,产生第一个参数的第二个参数次幂的值。

形式参数和实在参数

形式参数和实在参数

应该强调的是:
①形参表中只能使用类型标识符,而不能使用类型。
②值形参和对应的实参必须一一对应,包括个数和类型。
③实参和值形参之间数据传递是单向的,只能由实参传送给形参,相当赋值运算。
④一个特殊情况是,当值形参是实型变量名时,对应的实参可以是整型表达式。
⑤值形参作为子程序的局部量,当控制(执行到)返回程序后,值形参的存储单元释放。
begin begin
t:=x;x:=y;y:=t; t:=x;x:=y;y:=t;
end; end;
begin begin
a:=1;b:=2; a:=1;b:=2;
⑤当控制返回到调用程序后,变量形参的存储单元不释放,但变量形参本身无定义,即不得再使用。
选用形式参时,到底是使用值形参还是变量形参,应慎重考虑。值形参需要另开辟存储空间,而变量形参会带来一些副作用。一般在函数中使用值形参,而在过程中才使用变量形参,但也有例外。
3、值形参数和变量形式参数的区别
2、变量形式参数
必须在形参名的前面加上 VAR 。
变量形参的作用:变量形参可以将子程序调用过程中产生的值返回调用它的程序,这时会有两种可能:
⑴实参已有确定值,变量形参从对应实参中接收数据,把经过子程序的处理后的值返回主程序,从而改变实参的值。
⑵在调用过程或函数前,实参没有确定的值,与它对应的变量形参可以把在过程或函数执行过程中所得的值传回,使这个实参得到确定的值。
begin
a:=a+1;
b:=b+1;
c:Байду номын сангаасc+1;
d:=d+1;
writeln(a:5,b:5,c:5,d:5);

函数参数传递的几种方式以及区别

函数参数传递的几种方式以及区别

函数参数传递的几种方式以及区别一、引言函数是编程中常用的一种工具,通过函数可以将一段代码封装起来,方便复用和维护。

而函数参数的传递方式决定了函数在调用时如何传递数据给函数体内部使用。

本文将介绍函数参数传递的几种方式及其区别。

二、位置参数传递位置参数是最常见的一种函数参数传递方式,也是默认的方式。

当我们调用函数时,根据参数的位置依次传递实参给形参。

例如:```def add(a, b):return a + bresult = add(1, 2)```在上述代码中,1和2分别对应函数add的两个位置参数a和b。

这种方式的优势在于简单直观,但缺点是容易出现参数位置错误的问题。

三、关键字参数传递关键字参数是通过参数名来传递实参的方式,与位置无关。

通过指定参数名,可以在函数调用时更清晰地表达参数的含义。

例如:```def add(a, b):return a + bresult = add(a=1, b=2)```在上述代码中,我们通过参数名指定了实参的传递顺序,从而避免了位置参数传递带来的潜在错误。

这种方式的优势在于提高了代码的可读性和可维护性。

四、默认参数传递默认参数是在函数定义时给参数赋予默认值,从而在函数调用时可以省略该参数。

例如:```def add(a, b=0):return a + bresult1 = add(1) # b的值为默认值0result2 = add(1, 2) # b的值为传入的实参2```在上述代码中,参数b被赋予了默认值0,这意味着在函数调用时可以不传递b的实参。

这种方式的优势在于简化函数调用,提高了代码的可读性。

五、可变参数传递可变参数是指在函数定义时不确定传入的参数个数,可以接收任意数量的实参。

在Python中,可变参数有两种形式:*args和**kwargs。

1. *args方式:```def add(*args):result = 0for num in args:result += numreturn resultresult = add(1, 2, 3) # 传入任意数量的实参```在上述代码中,参数args前面的*表示args是一个可变参数,可以接收任意数量的实参。

Python 试卷题目有答案 第7章 函数

Python 试卷题目有答案 第7章  函数

7-1 形式参数和实际参数有哪些区别?答:❑形式参数:在定义函数时,函数名后面括号中的参数为“形式参数”,也称形参。

❑实际参数:在调用一个函数时,函数名后面括号中的参数为“实际参数”。

也就是将函数的调用者提供给函数的参数称为实际参数,也称实参。

根据实参的类型不同,可以分为将实参的值传递给形参,和将实参的引用传递给形参两种情况。

其中,当实参为不可变对象时,进行的是值传递;当实参为可变对象时,进行的是引用传递。

实际上,值传递和引用传递的基本区别就是,进行值传递后,改变形参的值,实参的值不变;而进行引用传递后,改变形参的值,实参的值也一同改变。

7-2 什么是位置参数和关键字参数?答:位置参数也称必备参数,必须按照正确的顺序传到函数中。

即调用时的数量和位置必须和定义时是一样的。

关键字参数是指使用形参的名字来确定输入的参数值。

通过该方式指定实参时,不再需要与形参的位置完全一致。

只要将参数名写正确即可。

这样可以避免用户需要牢记参数位置的麻烦,使得函数的调用和参数传递更加灵活方便。

7-3 为参数设置默认值有哪些注意事项?答:在定义函数时,指定默认的形参必须在所有参数的最后,否则将产生语法错误。

7-4 什么是可变参数?Python中提供了哪两种可变参数?答:在Python中,还可以定义可变参数。

可变参数也称不定长参数,即传入函数中的实际参数可以是零个、一个、两个到任意个。

定义可变参数时,主要有两种形式,一种是*parameter,另一种是**parameter。

7-5 如何为函数设置返回值?答:在Python中,可以在函数体内使用return语句为函数指定返回值。

该返回值可以是任意类型,并且无论return语句出现在函数的什么位置,只要得到执行,就会直接结束函数的执行。

return语句的语法格式如下:result = return [value]参数说明如下:❑result:用于保存返回结果,如果返回一个值,那么result中保存的就是返回的一个值,该值可以任意类型。

python引用传递和值传递详解(实参,形参)

python引用传递和值传递详解(实参,形参)

6 a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}
7 >>> f1(1, 2, 3, 'a', 'b', x=99)
8 a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
910>a>=>1f2b(1=,
2, d=99, ext=None) 2 c = 0 d = 99 kw =
这个应该很好理解,比较简单。
所谓的命名关键字参数就是在形参里面我们有一个对应的形参符号,然后在传入参数的时候,我们以形参符号赋值的形式传入 参数,这样做就是能让我们避免因顺序错误产生的程序错误。如这种形式:b=‘你好'
如果函数定义中已经有了一个可变参数,后面跟着的命名关键字参数就不再需要一个特殊分隔符*了:
参数组合就是说在命名函数的时候,形参可以包含必选参数,默认参数,可变参数,命名关键字参数,关键字参数。 但是在 用这个五个参数的时候,一定一定要谨记,这个五个参数的传入顺序一定为 必选参数,默认参数,可变参数,命名关键字参 数,关键字参数。否则 程序一定会出错。
比如定义一个函数,包含若干种参数:
? 1def f1(a, b, c=0, *args, **kw): 2 print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw) 3 4def f2(a, b, c=0, *, d, **kw): 5 print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)

PLC编程中形参与实参的区别

PLC编程中形参与实参的区别

PLC编程中形参与实参的区别结合STEP7里具体点说可以是,假如我们有1个功能块FB1,功能FC1,几个FB1的背景数据块。

在FB1里写公式a+b+c,这里a,b,c就是形参。

而在FC1里我们定义在I0.0=1时调用FB1,并令a=1,b=2,c=3.此时1,2,3就是实参。

而定在I0.1=1时调用FB1,令a=10,b=20,c=30,此时10,20,30也是实参。

举例说明:例:3X + 2Y =5Z当X=48,Y=22,求Z?其中X,Y,Z就是形参。

48,22就是实参。

形参:全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数.实参:全称为"实际参数"是在调用时传递个该函数的参数.形参:形式上的参数,没有具体值。

你在写一个方法的时候当然不知道具体值而实参:是你调用方法时给的参数,给的是和所调用方法所匹配的具体值。

数值传递的时候,实参是不变的,形参是随着计算而变化的。

指针/引用传递的时候,行参怎么变~实参就怎么变。

实参就是送进去的东西,行参就是把送进来的东西进行加工。

加工完后就返回一个东西:返回值.编程简单理解为“形参”与“实参”的相互作业,体现在具体编程中就是:在程序FB/FC中全部使用“形参”,这里的”形参“你可以随便定义,你主要知道它的意思就可以;在程序编好以后就回到主程序OB1,把你编好的FB/FC拿出来,因为原来FB/FC是一块一块的,所以在OB1中你想拿多少次FB/FC都是没有问题的,当然这个由你的实际需要决定哦,这个时候的FB/FC 就表现形式为一个”功能箱“,就好象在编程时我们要使用的什么计数器/计时器/SR/RS触发器等一样,我们需要的是给这些”功能箱“赋与它生命的”实参“,这个时候”功能箱“才会动起来,至于它怎么动,当然是你自己想的。

理解了”功能箱“FB/FC和OB1的联系与差别,你应该对于所谓的”结构化“有了一定的认识,需要注意一下的是FB是一个完全意义上的”功能箱“,FC是部分意义的”功能箱“,为什么这样说是因为FB和”功能箱“的使用完全相同,具体表现为FB的“形参”不要求全部有“实参”,但是FC“形参”与“实参”必须一一对应。

C语言形参和实参的区别(非常详细)

C语言形参和实参的区别(非常详细)

C语⾔形参和实参的区别(⾮常详细)如果把函数⽐喻成⼀台机器,那么参数就是原材料,返回值就是最终产品;从⼀定程度上讲,函数的作⽤就是根据不同的参数产⽣不同的返回值。

这⼀节我们先来讲解C语⾔函数的参数,下⼀节再讲解C语⾔函数的返回值。

C语⾔函数的参数会出现在两个地⽅,分别是函数定义处和函数调⽤处,这两个地⽅的参数是有区别的。

形参(形式参数)在函数定义中出现的参数可以看做是⼀个占位符,它没有数据,只能等到函数被调⽤时接收传递进来的数据,所以称为形式参数,简称形参。

这⾥按⾃⼰的理解为什么说形参看作⼀个占位符,后⽂还说到在调⽤之前并没有给他分配内存,看上去这两段是有些⽭盾的,其实机器在时间上的运⾏顺序这么说没⽑病; 本⼈理解是在程序编译过程中,程序计数器不断加以程序顺序执⾏,执⾏到调⽤函数位置时,会将之前的数据压栈就像中断⼀样,调⽤前要传递实参值对应的内存位置并没有开辟,所以可以说形参再调⽤前不占内存; 但是这⾥没有开辟不是说实参会传到随机的位置,这是不会发⽣的,程序在编译好之后,每执⾏⼀条指令,数据都会有个确切的内存位置对应(这是在编译器编译的时候就已经确定好的),所以这么说来,形参确实是⼀个占位符(占有⼀个内存地址的位置); 只是调⽤前别的参数也可以占⽤这个位置,但编译器编译的时候肯定不会让⼀个全局变量的内存地址和分配给形参的内存地址是同⼀个地址,原因⼤家应该通过上⾯的解释也明⽩编译器在编译时不会让两个没有关联的变量,同时服务于⼀个地址这样会造成数据的混乱。

就像两个服务员负责同⼀桌客⼈时,当客⼈需要⼀瓶饮料时,两个服务员分别在不同时刻听到,可能就会造成给客⼈拿两瓶情况。

实参(实际参数)函数被调⽤时给出的参数包含了实实在在的数据,会被函数内部的代码使⽤,所以称为实际参数,简称实参。

形参和实参的功能是传递数据,发⽣函数调⽤时,实参的值会传递给形参。

形参和实参的区别和联系1) 形参变量只有在函数被调⽤时才会分配内存,调⽤结束后,⽴刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使⽤。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实参和形参:
定义:在定义函数时,函数名后面括号中的变量名称为“形式参数”(简称行
参);在主调函数中调用一个函数时,函数名后面括号中的参数(可以是一个表达式)称为“实际参数”(简称实参)。

关于形参和实参的说明:
(1)在定义函数中指定的形象,在未出现函数调用时,他们并不占内存中的存储单元。

只有在发生函数调用时,函数中的形象才被分配内存空间单元。

在调用结束后,形参所占的内存单元也被释放。

(2)实参数可以是常量、变量、或表达式,如max(3,a+b);但要求他们有确定的值。

在调用时,将实参的值赋给形参。

(3)在被定义的函数中,必须指定形参的类型。

(4)实参和形参的类型应相同或赋值兼容。

如果类型不同,则按不同类型数值的赋值规则进行转换。

如实参值为 3.5 ,而形参x为整型,则将实数3.5转换成整数3,然后送到形参x。

字符型和整型可以互相通用。

(5)在C语言中,实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传回给实参。

在内存中,实参单元与形参单元是不同的单元。

在调用函数时,给形参分配存储空间,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。

因此,在执行一个被调用函数时,形参的值如果发生改变,并不会改变主调函数的实参的值。

相关文档
最新文档