参数和参数之间有什么区别?

roh*_*agg 661 language-agnostic parameters arguments terminology

当口头谈论方法时,我永远不确定是否使用单词参数参数或其他东西.无论哪种方式,其他人都知道我的意思,但是什么是正确的,这些条款的历史是什么?

我是一名C#程序员,但我也想知道人们是否使用不同语言的不同术语.

根据记录,我是自学成才,没有计算机科学的背景.(请不要告诉我阅读Code Complete,因为我问这个是为了其他没有史蒂夫麦康奈尔精彩书籍的人的利益.)

摘要

普遍的共识似乎是在团队环境中交替使用这些术语是可以的.除非您定义精确的术语; 那么你也可以使用" 形式参数/参数"和" 实际参数/参数"来消除歧义.

Tor*_*son 815

参数是方法定义中的变量.调用方法时,参数是传递给方法参数的数据.

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);
Run Code Online (Sandbox Code Playgroud)

  • 一个可能有帮助的头韵助记符:参数是实际的.;) (177认同)
  • "你定义参数,然后你做出参数." (98认同)
  • 答案提到"参数是方法定义中的变量",但最好说"方法声明"[如果有人在'声明'和'定义'之间进行区分] (7认同)
  • parameter =>当我们定义函数时,参数=>当我们调用该方法时.(如果我错了,请纠正我.) (5认同)
  • 参数是名称。争论是价值观。 (4认同)
  • 我想“这次我将如何与这个函数争论”——你可以用许多不同的方式与它争论(在不同的调用中提供不同的参数)。 (2认同)
  • 小一点 - Java 书籍的 main 方法为 main(String [ ] args)。它应该是 main(String [ ] params) 。 (2认同)

Rin*_*lin 304

参数在函数声明中是可变的.

参数是传递给函数的此变量的实际值.

  • 这些语言通常将传递给方法的参数/参数列表称为`*args`或`ARGV`而不是`*params` :-) (6认同)
  • `*params`将是一个变量的名称,用于保存参数名称(可能用于内省). (5认同)
  • @karatedog实际上,这完全符合这种区别.参数在声明时命名,参数仅在调用时知道.语法`*args`声明一个_parameter_`args`,其值是_arguments_的列表(在声明时知道的名称和类型)(其号码仅在呼叫时知道). (5认同)

Ati*_*ziz 71

已经有关于该主题的维基百科条目(参见参数),该条目定义和区分术语参数参数.简而言之,参数是函数/过程/方法签名的一部分,参数是在运行时和/或调用现场为参数提供的实际值.

维基百科的文章还指出这两个术语经常被同义使用(特别是在非正式地推理代码时):

虽然参数通常也称为参数,但在运行时调用子例程时,参数更适合被视为分配给参数变量的实际值或引用.

给出下面的例子中功能用C,增加了两个整数,x并且y将被称为它的参数:

int add(int x, int y) {
    return x + y;
}
Run Code Online (Sandbox Code Playgroud)

在使用呼叫站点时add,例如下面所示的示例,123456将被称为呼叫的参数.

int result = add(123, 456);
Run Code Online (Sandbox Code Playgroud)

此外,一些语言规范(或正式文件),选择要使用的参数参数完全和使用的形容词像正式的实际的,而不是这两种情况之间的歧义.例如,C/C++文档通常将函数参数称为形式参数,将函数调用参数称为实际参数.有关示例,请参阅Visual C++语言参考中的" 正式和实际参数 " .


Duc*_*lan 61

简单:

  • P ARAMETER → P LACEHOLDER(这意味着占位符属于函数命名并在函数体中使用)
  • RGUMENT→ CTUAL VALUE(这意味着其由函数调用传递的实际值)

  • 漂亮的记忆钩 (2认同)

Car*_*rra 31

调用函数时,必须填写参数.你在其中提出的是争论.

简单设置:参数进入参数,参数是参数的值.

更多信息:http: //en.wikipedia.org/wiki/Parameter_ (computer_science)#Parameters_and_arguments


小智 25

参数在函数声明中是可变的.

参数是传递给函数的此变量的实际值. 在此输入图像描述

  • 就我而言,这张照片很有帮助。 (14认同)

Zen*_*ulz 16

术语参数和参数的使用在程序员甚至作者中都被滥用了.处理方法时,term 参数用于标识方法签名中的占位符,而术语参数是传递给方法的实际值.

MCSD Cerfification Toolkit(考试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);
Run Code Online (Sandbox Code Playgroud)


Wol*_*'08 9

在编辑方面,我经常会忘记人们如何忘记:结构语言基于自然语言.

用英语讲

"参数"是占位符.他们用口语设置了响应格式.根据定义,它是呼叫的一方,限制了响应.

"论证"是正在考虑的立场.你争论你的观点:你考虑一个论点.

主要区别

论证的主题作用是代理人.参数的主题作用是接受者.

互动

将该论点视为男性部分,使参数成为女性的一部分.参数进入参数.

用法

参数通常用于定义中.参数通常用于调用.

问题

完成句子,使其不那么不协调.

(A)说到定义:

  1. 将使用什么参数[]?
  2. 这个参数[]会是什么[]?

(B)说到调用:

  1. 你会用什么参数,[]?
  2. []将[]这个参数是什么?

答案

(一个)

  1. on/in/against/with this参数
  2. 论证......采取

(B)

  1. 什么是一些示例参数
  2. argument(s)...用于/ in/against/with

重叠

你可以想象,在回答之后:用口语,这些词有时会产生相同的反应!

所以,作为一项规则:

  • 通常,如果有人想要参数信息,他们想要更多地了解类型,变量名称等.如果您只提供示例参数,它们可能会变得混乱.

    • 通常,如果有人想要参数信息,他们想知道您传递给函数或其参数的值.


Joh*_*han 7

函数/方法的参数向您描述它用于计算结果的值.

所述参数的一个是函数/方法的一个特定的呼叫期间分配给这些参数的值.


Sau*_*ana 7

这个例子可能有帮助.

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;
}
Run Code Online (Sandbox Code Playgroud)


naw*_*fal 7

或者在方法的可选参数的情况下,可能更简单地记住这样:

public void Method(string parameter = "argument") 
{

}
Run Code Online (Sandbox Code Playgroud)

parameter是参数,它的值,"argument"是参数:)


snr*_*snr 7

参数和参数

与参数和参数有关的所有不同术语都可能令人困惑.但是,如果您记住几个简单的要点,您将能够轻松处理这些条款.

  1. 函数的形式参数列在函数声明中,并在函数定义的主体中使用.形式参数(任何类型)是一种空白或占位符,在调用函数时会填充某些内容.
  2. 一种说法是什么,是用来填补在正式的参数.当您记下函数调用时,参数将在函数名称后的括号中列出.执行函数调用时,插入参数以获取形式参数.
  3. 术语调用-值调用-参考指的是在连接器插头插入在过程中使用的机制.在call-by-value方法中,仅使用参数的值.在这个按值调用机制中,形式参数是一个局部变量,它初始化为相应参数的值.在call-by-reference机制中,参数是一个变量,并使用整个变量.在call-by-reference机制中,参数变量替换形式参数,以便对形参数进行的任何更改实际上都是对参数变量进行的.

资料来源:Absolute C++,Walter Savitch

那是,

在此输入图像描述


小智 7

始终记住: - 在接收参数时传递参数.


Mar*_*tos 6

这些术语有些可以互换.在其他的答案中描述的区别在于更正确地与术语表达形式参数的功能和体内所使用的名称参数在调用站点提供的值(正式说法争论也很常见).

还要注意的是,在数学术语的说法是更为常见和参数通常意味着完全不同的东西(虽然参数的参数方程本质上是争论的两个或多个功能).


XML*_*XML 6

假设你是一家航空公司.你建造了一架飞机.你在里面安装座位.然后,你把乘客填满飞机并送到某个地方.乘客(或者更确切地说,其中一些时空改变版本)下船.第二天,你重新使用同一架飞机和相同的座位,但这次乘客不同.

飞机是你的功能.

参数是座位.

争论的焦点是进入这些座位的乘客.

  • “争论的焦点是坐在这些座位上的乘客。” 听起来所有乘客都对航空公司的运作方式存在争议。;) (2认同)

Pau*_*ter 5

参数是参数的实例化。

  • 这是很久以前另一个程序员给我的解释,我认为这是一个非常清晰简洁的解释。出于这个原因,我把它贴在这里。 (4认同)

BKS*_*eon 5

没有代码的简单解释

“参数”是一个非常笼统的东西,而“参数”是一个非常具体、具体的东西。通过日常例子可以最好地说明这一点:

示例 1:自动售货机 - Money 是参数,$2.00 是参数

大多数机器接受输入并返回输出。例如,自动售货机将输入:钱,并返回:汽水作为输出。在这种特殊情况下,它接受一个参数:钱。

那论据是什么呢?好吧,如果我将 $2.00 放入机器中,那么参数是:$2.00 - 这是使用的非常具体的输入。

示例 2:汽车 - 汽油是参数

让我们考虑一辆汽车:他们接受汽油(无铅汽油)作为输入。可以说这些机器接受类型参数:汽油。论点将是我放入汽车的确切而具体的输入。例如,就我而言,论据是:40 升无铅汽油/汽油。

示例 3 - 详细说明参数

参数是输入的特定示例。假设我的机器将一个人作为输入并将他们变成一个不是骗子的人。

那什么是论证呢?参数将是实际放入机器中的特定人。例如,如果将 Colin Powell 放入机器中,则参数将是 Colin Powell。

因此,参数将是一个抽象概念的人,但参数将始终是放入机器中的具有特定名称特定人。论证是具体而具体的。

这就是区别。简单的。

使困惑?

发表评论,我会修正解释。


ano*_*ewb 5

是的!参数和参数有不同的含义,可以很容易地解释如下:

函数参数是函数定义中列出的名称。

函数参数是传递给函数(并由函数接收)的实际值。


Tia*_*ica 5

一般来说,术语参数和参数可以互换使用,表示传递给函数的信息。

然而,从函数的角度来看:

  • 参数是在函数定义的括号内列出的变量。
  • 一种说法是,当它被称为发送到该函数的值。


icc*_*c97 5

我对所有这些答案仍然不满意。他们都开始谈论“函数声明”,而我的猴子大脑已经开始思考独角兽了。这根本不能帮助我记住,这只是定义。

我想要一些可以立即并永远留在我脑海中的东西。

我很快明白的唯一答案是:

参数是传入的实际值”

参数更容易定义,只要您知道它们是什么,那么您就知道参数是另一个。

我能想到的另一种方式是:

  • 参数是函数外部的变量
  • 参数是函数内部的变量

简化为:

参数在外面,参数在里面

如果有人不同意我的观点,你可以把你的论点留在外面;)

  • 这就是我一直记得的“把你的论点带到外面去” (2认同)

Cal*_*mus 5

参数传递参数的实际