一个参数和一个参数有什么区别?
当口头谈论方法,我不知道是否使用单词参数或参数或别的东西。 无论哪种方式,其他人都知道我的意思,但什么是正确的,这些条款的历史是什么?
我是一名C#程序员,但我也怀疑人们是否在不同的语言中使用不同的术语。
为了logging,我是自学的,没有计算机科学背景。 (请不要告诉我阅读代码完整的,因为我问这是为了没有史蒂夫麦康奈尔的奇妙的书副本的其他人的利益。)
概要
普遍的共识似乎是可以在团队环境中交替使用这些术语。 除了可能在定义精确的术语时, 那么你也可以使用“ forms参数/参数”和“ 实际参数/参数”来消除歧义。
参数是方法定义中的variables。 当一个方法被调用时,参数就是你传递给方法参数的数据。
public void MyMethod(string myParam) { } ... string myArg1 = "this is my argument"; myClass.MyMethod(myArg1);
参数在函数声明中是可变的。
参数是传递给函数的这个variables的实际值。
关于主题已经有一个维基百科条目(参见参数 ),它定义和区分了术语参数和参数 。 简而言之,参数是函数/过程/方法签名的一部分,参数是运行时和/或调用站点为参数提供的实际值。
维基百科文章还指出,这两个术语经常被用作同义词(特别是在非正式推理代码的时候):
尽pipe参数通常也被称为参数,但是在运行时调用子例程时,参数更适当地被认为是分配给参数variables的实际值或引用。
给定C中的以下示例函数添加两个整数, x
和y
将被称为它的参数:
int add(int x, int y) { return x + y; }
在使用add
的呼叫站点,如下面所示的示例中, 123和456将被称为呼叫的参数 。
int result = add(123, 456);
另外,一些语言规范(或正式文档)select仅使用参数或参数,而使用forms化和实际形容词来消除这两种情况之间的歧义。 例如,C / C ++文档经常将函数参数称为forms参数和函数调用参数作为实际参数 。 有关示例,请参阅Visual C ++语言参考中的“ forms和实际参数 ”。
调用函数时必须填写参数。 你在这里提出的是这个论点。
简单地设置:参数进入参数,参数是参数的值。
更多信息: http : //en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments
术语参数和参数的使用在程序员甚至作者中被滥用。 在处理方法时,术语参数用于标识方法签名中的占位符,而术语参数是您传递给方法的实际值。
MCSD Cerfification工具包(考试70-483)C#编程 ,第1版,Wrox,2013
真实世界的情况下
// Define a method with two parameters int Sum(int num1, int num2) { return num1 + num2; } // Call the method using two arguments var ret = Sum(2, 3);
在编辑过程中,我常常忘记人们如何忘记:结构语言是基于自然语言的。
用英语
一个“参数”是一个占位符。 他们用口头语言设置了答复的格式。 根据定义,它是调用的一方,限制响应。
“论点”是一个正在考虑的位置。 你争辩你的意见:你考虑一个论点。
主要区别
争论的主题angular色是代理人。 参数的主题作用是收件人。
互动
把这个论点看作是男性的一部分,使参数成为女性的一部分。 参数进入参数。
用法
定义中通常使用参数。 调用通常使用一个参数。
问题
结束这个句子,使之不那么和谐。
(一)说到一个定义:
- 将使用什么参数[]?
- 这个参数是什么[]?
(B)说到一个调用:
- 你会用什么参数,[]?
- 这个参数是什么[]?
答案
(一个)
- on / in / against /用这个参数
- 论点(s)…采取
(B)
- 什么是一些例子的论点
- 参数…在…上使用/在/与/在…上使用
重叠
正如你所想象的那样,用口语回答后,这些话有时会产生相同的反应!
所以,作为一个规则:
-
通常如果有人想要参数信息,他们想知道更多关于types,variables名等。如果你只是举例说明,他们可能会变得困惑。
- 通常如果有人需要参数信息,他们想知道你传递给函数或参数的值是多less。
简单:
- P ARAMETER→ P LACEHOLDER(这意味着占位符属于函数命名并在函数体中使用)
- 一个 RGUMENT→ 一个 CT值(这意味着函数调用传递的实际值)
这些条款有些可以互换。 在其他答案中所描述的区别更适合用函数体内使用的名称的forms参数和呼叫站点提供的值的参数 ( forms参数和参数也是常见的)来expression。
还要注意的是,在math中,术语参数更常见, 参数通常意味着完全不同的东西(尽pipe参数方程中的参数本质上是两个或更多函数的参数 )。
假设你是一家航空公司。 你build造一架飞机。 你在里面安装座位。 然后,你把乘客搭上飞机,把它送到某个地方。 乘客(或更确切地说是一些时空改变的版本)下车。 第二天,你重新使用同一架飞机,同样的座位,但这次与不同的乘客。
飞机是你的function。
参数是座位。
争论是坐在这些座位上的乘客。
这个例子可能有帮助。
int main () { int x = 5; int y = 4; sum(x, y); // **x and y are arguments** } int sum(int one, int two) { // **one and two are parameters** return one + two; }
或者可能更简单的记住,如果是方法的可选参数:
public void Method(string parameter = "argument") { }
parameter
是参数,其值"argument"
是参数:)
函数/方法的参数向您描述了用来计算结果的值。
a的参数是在函数/方法的特定调用期间分配给这些参数的值。
是! 参数和参数有不同的含义,可以很容易地解释如下:
函数参数是函数定义中列出的名称。
函数参数是传递给函数(并由函数接收)的实际值。
始终记住: – 参数收到时传递参数。
甚至更简单…
参数!
输出参数!
参数是一个参数的实例。
好吧,让我们成为现实:对于所有的意图和目的,他们几乎是一样的东西……….好吧,但对于学生来说,可能会有技术上的差异。
一个“参数”是一个非常广泛的概念,但是一个参数是一个非常具体的事情。 太好了,谢谢 – 这真的很有帮助。 嗯:或许一个例子是为了。
一个简单的解释
举个例子:我有一台机器。 下面是它的工作原理:我把东西放在机器的一端,另一端则是一个新的“产品”从机器中出来。 什么进入这台机器? 任何东西。 什么出来? 好吧,我可以把面粉和糖放在这台机器的一端,而另一端则是蛋糕。 你明白了。
现在不同的机器有不同的规则。 一台特定的机器只能接受汽油(无铅)作为input。 可以这样说,这些机器接受types:汽油的参数。
一个例子
那么是什么争论呢? 一个论点是一个特别的例子,是什么放入机器。 假设我的机器以人为input( 人们将是这台机器的参数 ),让我们假设这台机器把这些人变成了一个不是什么好人的人(这是多么棒的机器!)那么这又是什么争论呢? 争论将是实际投入机器的特定人物。 例如,如果乔治·布什被放入机器,那么争论就是乔治·布什。 如果Kim Kardiashian在那里,那么她也是一个争论。 所以这个参数就是人作为一个抽象的概念,但是这个争论永远是一个特定的人,放在机器里。
再举一个例子
例如一种方法(即将input变成输出的特定机器)可以接受整数作为参数。 假设整数5被“传入”函数(即让我们假设你把数字5放入机器中)。 在这种情况下,整数“5”将是参数,并且此方法接受的“参数”将是整型。
这是不同的。 简单。
我希望这有帮助。 如果你感到困惑只是评论,我会尝试修复它。
参数和参数
与参数和参数有关的所有不同的术语都可能令人困惑。 但是,如果您记住一些简单的要点,您将能够轻松处理这些条款。
- 函数的forms参数在函数声明中列出,并在函数定义的主体中使用。 forms参数(任何types)是一种空格或占位符,当函数被调用时被某种东西填充。
- 参数是用来填充正式参数的东西。 当你写下一个函数调用时,参数在函数名后面的括号中列出。 当函数调用被执行时,参数被插入forms参数。
- 术语call-by-value和call-by-reference是指在插入过程中使用的机制。 在按值调用方法中,只使用参数的值。 在这个按值调用的机制中,forms参数是一个初始化为相应参数值的局部variables。 在引用调用机制中,参数是一个variables,整个variables被使用。 在引用调用机制中,参数variables被replace为forms参数,所以对forms参数所做的任何改变实际上都是对参数variables进行的。
来源:绝对C ++,沃尔特·萨维奇
那是,
它们在C中的用法都没有太大的差别,这两个术语在实践中都被使用了。 大多数论点经常与function一起使用。 函数调用语句传递的值被称为参数,参数将是函数定义中的值的复制variables(称为forms参数)。
int main () { /* local variable definition */ int a = 100; int b = 200; int ret; /* calling a function to get max value */ ret = max(a, b); printf( "Max value is : %d\n", ret ); return 0; } /* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
在上面的代码中, num1
和num2
是forms参数, a
和b
是实际参数。
Oracle的Java教程这样定义了这个区别:“参数是指方法声明中的variables列表,参数是调用方法时传入的实际值,当调用方法时,所使用的参数必须与声明的参数types和顺序“。
有关参数和参数的更详细的讨论: https : //docs.oracle.com/javase/tutorial/java/javaOO/arguments.html
当我们在Java中创build方法(函数)时,像这样的方法..
data-type name of the method (data-type variable-name)
在括号中,这些是参数,当我们调用方法(函数)时,我们传递了这个参数的值,这个参数被称为参数。
从逻辑上讲,我们其实是在谈论同样的事情。 但是我认为一个简单的比喻会有助于解决这个困境。
如果隐喻可以被称为各种连接点,我们可以将它们等同于插入墙上的点。 在这种情况下,我们可以考虑如下的参数和论点;
参数是可能采取各种不同形状的插入点的sockets。 但只有某些types的插头适合他们。
参数将是插入插入点/sockets以激活某些设备的实际插头。
参数是由函数接收的variables。因此它们在函数声明中是可见的。它们包含variables名称及其数据types。 参数是传递给另一个函数的实际值。 这就是为什么我们可以在函数调用中看到它们。 它们只是没有数据types的值
函数的forms参数在函数声明中列出,并在函数定义的主体中使用。 forms参数 (任何types)是一种空格或占位符,当函数被调用时被某种东西填充。
参数是用来填充正式参数的东西。 当你写下一个函数调用时,参数在函数名后面的括号中列出。 当函数调用被执行时,参数被插入forms参数。
术语call-by-value和call-by-reference是指在插入过程中使用的机制。 在按值调用方法中,只使用参数的值。 在这个按值调用的机制中,forms参数是一个初始化为相应参数值的局部variables。 在引用调用机制中,参数是一个variables,并且使用了整个variables。 在引用调用机制中,参数variables被replace为forms参数,所以对forms参数所做的任何改变实际上都是对参数variables进行的。
参数是用于存储传递给函数以供函数使用的数据的variables。 参数是调用时传递给函数的实际数据:
// x and y are parameters in this function declaration function add(x, y) { // function body var sum = x + y; return sum; // return statement } // 1 and 2 are passed into the function as arguments var sum = add(1, 2);