当口头谈论方法时,我从不确定是否应该使用参数或参数或其他词。不管怎样,其他人都知道我的意思,但什么是正确的,这些术语的历史是什么?

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

声明一下,我是自学的,没有计算机科学的背景。(请不要让我去读《代码完成》,因为我这么做是为了让那些还没有史蒂夫·麦康奈尔这本了不起的书的人受益。)

总结

普遍的共识似乎是,在团队环境中可以互换使用这些术语。除非你在定义精确的术语;然后你也可以使用“正式参数/参数”和“实际参数/参数”来消除歧义。


当前回答

这个例子可能会有所帮助。

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;
}

其他回答

Parameter是函数声明中的变量。

参数是传递给函数的这个变量的实际值。

我仔细想了想,意识到我之前的答案是错的。这里有一个更好的定义

{想象一盒鸡蛋:一包香肠链接:和一个女佣}这些代表一个函数的元素,需要准备称为:(使用任何名称:假设烹饪是我的函数的名称)。

Maid是一种方法。

(你必须调用或询问这个方法来做早餐)(做早餐的行为是一个叫做烹饪的功能)_

鸡蛋和香肠

(因为你想吃的鸡蛋和香肠的数量是可变的。

你的决定是一个论点:

它表示你正在烹饪的鸡蛋和/或香肠的数量。_

{助记}

“当你打电话给女仆让她做早餐时,她和你争论你应该吃多少鸡蛋和香肠。她担心你的胆固醇__

(然后,参数是你声明并决定传递给你的函数的参数组合的值)

或者更简单…

争论开始了!

参数输出!

在编辑工作中,我经常被人们忘记:结构语言是基于自然语言的。

用英语

“参数”是一个占位符。他们用口语设定回答格式。根据定义,它是呼叫的一方,限制响应。

“论点”是一个正在被考虑的立场。你争论你的观点:你考虑一个论点。

主要区别

论证的主位作用是代理。参数的主题角色是接受者。

的相互作用

把参数看成男性部分,把参数看成女性部分。实参进入形参。

使用

通常在定义中使用参数。实参通常用于调用。

问题

完成这个句子,使它不那么不和谐。

(A)说到定义:

将使用什么参数[]? 参数[]是什么[]?

(B)说到祈祷:

您将使用什么参数,[]? 这个参数[]将是什么[]?

答案

(A)

On /in/against/使用此参数 论点(s)……取

(B)

有什么例子吗 论点(s)……使用/ /反对/

重叠

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

所以,作为规则:

通常,如果有人想要参数信息,他们想要了解更多关于类型、变量名等的信息。如果你只给出例子论证,他们可能会感到困惑。 通常,如果有人想要参数信息,他们想知道你传递给函数或它的形参的值是什么。

由于我的背景和主要环境是C语言,我将从实际的C标准和一本重要的参考书中提供一些关于这个主题的陈述/引用,这本书也是C语言的一个开发人员写的,它经常被引用,通常被视为C语言的第一个非官方标准:


C编程语言(第二版),作者Brian W. Kernighan和Dennis M. Ritchie(1988年4月):

第25页,第1.7节-功能 在函数定义中,我们通常将在括号内列表中命名的变量使用形参,将在函数调用中使用的值使用形参。术语形式论证和实际论证有时用于同样的区别。

ISO/IEC 9899:2018 (C18):

3.3 论点 实际参数 DEPRECATED:实际参数 函数调用表达式中以圆括号为界的逗号分隔列表中的表达式,或者类函数宏调用中以圆括号为界的逗号分隔列表中的预处理令牌序列。


3.16 参数 形式参数 弃用:正式的参数 对象,该对象声明为函数声明或定义的一部分,在函数的入口处获取值,或者在类函数宏定义中,由紧接在宏名称后面的圆括号括起来的逗号分隔的列表中获取标识符。