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

时间:2008-10-01 08:57:20

标签: parameters language-agnostic arguments terminology

当口头谈论方法时,我无法确定是否使用参数参数或其他内容。无论哪种方式,其他人都知道我的意思,但是什么是正确的,这些条款的历史是什么?

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

为了记录,我在没有计算机科学背景的情况下自学成才。 (请不要告诉我阅读Code Complete,因为我问的是为了其他没有Steve McConnell奇妙书籍副本的人的利益。)

摘要

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

35 个答案:

答案 0 :(得分:730)

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

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);

答案 1 :(得分:286)

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

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

答案 2 :(得分:68)

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

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

  

虽然参数也很常见   称为参数,参数   更恰当地被认为是   分配的实际值或参考   到时的参数变量   子程序在运行时被调用。

鉴于C中的以下示例函数添加了两个整数,xy将被称为其参数:

int add(int x, int y) {
    return x + y;
}

在使用add的呼叫网站上,例如下面显示的示例, 123 456 将被称为参数< / em>的电话。

int result = add(123, 456);

此外,某些语言规范(或正式文档)选择仅使用参数参数并使用 formal 等形容词实际而不是消除两种情况之间的歧义。例如,C / C ++文档通常将函数参数称为形式参数,函数调用参数作为实际参数 。有关示例,请参阅Formal and Actual Arguments中的“Visual C++ Language Reference”。

答案 3 :(得分:52)

简单:

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

答案 4 :(得分:30)

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

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

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

答案 5 :(得分:13)

参数在函数的声明中是变量。

参数是此变量的实际值,该值将传递给函数。 enter image description here

答案 6 :(得分:12)

  

术语参数和参数的使用被滥用   有点像程序员甚至作者。处理时   方法,术语参数用于标识占位符   方法签名,而术语参数是实际的   传入方法的值。

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

答案 7 :(得分:9)

在编辑中,我经常推迟人们如何忘记:结构语言基于自然语言。

英文

A&#34;参数&#34;是一个占位符。他们用口语设置了响应格式。根据定义,它是呼叫的一方,限制了响应。

&#34;参数&#34;是一个正在考虑的立场。你争论你的观点:你考虑一个论点。

主要差异

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

相互作用

将该论证视为男性部分,使该参数成为女性部分。参数进入参数。

用法

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

问题

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

(A)说到定义:

  1. 将使用什么参数[]?
  2. 这个参数是什么[]?
  3. (B)说到一个调用:

    1. 您将使用什么参数,[]?
    2. []这个参数是什么?
    3. 答案

      (A)

      1. on / in / in / with / with this parameter
      2. 参数......采取
      3. (B)

        1. 以及什么是示例参数
        2. 参数...用于/ in / against / with
        3. 重叠

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

          所以,作为一项规则:

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

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

答案 8 :(得分:7)

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

a的参数是在函数/方法的特定调用期间分配给这些参数的值。

答案 9 :(得分:7)

或者在方法的可选参数的情况下可能更容易记住:

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

}

parameter是参数,其值"argument"是参数:)

答案 10 :(得分:7)

参数和参数

  

与参数和参数有关的所有不同术语   可能会令人困惑。但是,如果你记住一些简单的观点,   您将能够轻松处理这些条款。

     
      
  1. 函数的形式参数在函数声明中列出,并在函数定义的主体中使用。一个   形式参数(任何种类)是一种空白或占位符   在调用函数时会填充一些东西。
  2.   
  3. 参数是用于填写形式参数的东西。   当您记下函数调用时,参数列在   函数名后的括号。当函数调用时   执行后,参数插入了形式参数。
  4.   
  5. 术语按值调用按引用调用指的是机制   插入过程中使用的。在按值调用方法中   仅使用参数的值。在这个按值调用   机制,形式参数是一个局部变量   初始化为相应参数的值。在里面   call-by-reference机制参数是一个变量而且   使用整个变量。在呼吁参考机制中   参数变量替换形式参数,以便   实际上对形式参数进行的任何更改   参数变量。
  6.   

来源:Absolute C ++,Walter Savitch

即,

enter image description here

答案 11 :(得分:6)

此示例可能会有所帮助。

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

答案 12 :(得分:6)

始终记住: - 在收到参数时传递参数。

答案 13 :(得分:6)

这些术语在某种程度上是可以互换的。其他答案中描述的区别更恰当地表达了形式参数用于函数体内使用的名称,参数用于在调用站点提供的值( 形式参数参数也很常见。)

另请注意,在数学中,术语参数更为常见,而参数通常意味着完全不同(尽管参数 in参数方程本质上是两个或多个函数的参数

答案 14 :(得分:6)

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

飞机是你的功能。

参数是座位。

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

答案 15 :(得分:4)

无代码的简单说明

“参数”是一个非常普遍的,广泛的东西,但是一个“论点:是一个非常具体,具体的事情。这可以通过日常例子得到最好的说明:

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

大多数机器接受输入并返回输出。例如,自动售货机作为输入:钱,并返回:作为输出的碳酸饮料。在这种特殊情况下,它接受作为参数:钱。

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

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

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

示例3 - 对参数的详细说明

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

那么论证是什么?论证将是实际投入机器的特定人。例如如果科林鲍威尔进入机器,那么争论将是科林鲍威尔。

因此,参数将是一个人作为抽象概念,但参数将始终是 特定人 ,其中 特定名称 谁被放入机器。这个论点具体而具体。

这就是区别。简单。

困惑?

发表评论,我会解释说明。

答案 16 :(得分:4)

参数是参数的实例化。

答案 17 :(得分:4)

通常,术语参数和参数可互换使用,表示传递给函数的信息。

但是,从函数的角度来看:

  • 参数是在函数定义的括号内列出的变量。
  • 参数是调用该函数时发送给该函数的值。

答案 18 :(得分:4)

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

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

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

答案 19 :(得分:3)

Oracle的Java教程因此定义了这种区别: &#34;参数是指方法声明中的变量列表。参数是调用方法时传递的实际值。调用方法时,使用的参数必须与声明的类型和顺序参数匹配。&#34;

有关参数和参数的更详细讨论: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html

答案 20 :(得分:3)

它们在C中的使用都没有太大差异,两个术语都被使用 在实践中。     大多数参数通常与函数一起使用。使用函数调用语句传递的值称为参数,参数将是复制函数定义中的值的变量(称为形式参数)。

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

在上面的代码中,num1num2是形式参数,ab是实际参数。

答案 21 :(得分:3)

从逻辑上讲,我们实际上是在谈论同样的事情。 但我认为一个简单的比喻将有助于解决这一难题。

如果隐喻可以称为各种连接点,我们可以将它们等同于墙上的插头点。 在这种情况下,我们可以考虑如下参数和参数;

参数 是插件的插座,可以采用各种不同的形状。但只有某些类型的插头适合它们。
参数 将是插入插头/插座以激活某些设备的实际插头。

答案 22 :(得分:3)

甚至更简单......

参数!

参数输出!

答案 23 :(得分:2)

当我们在Java中创建方法(函数)时,这样的方法......

data-type name of the method (data-type variable-name)

在括号中,这些是参数,当我们调用方法(函数)时,我们传递this参数的值,这些参数称为参数。

答案 24 :(得分:2)

参数是函数定义中的变量
参数是参数的

<?php

    /* define function */
    function myFunction($parameter1, $parameter2)
    {
        echo "This is value of paramater 1: {$parameter1} <br />";
        echo "This is value of paramater 2: {$parameter2} <br />";
    }

    /* call function with arguments*/
    myFunction(1, 2);

?>

答案 25 :(得分:2)

根据约瑟夫的阿拉巴哈里的书“C#in a Nutshell”(C#7.0,p.49):

static void Foo (int x)
{
    x = x + 1; // When you're talking in context of this method x is parameter
    Console.WriteLine (x);
}
static void Main()
{
    Foo (8); // an argument of 8. 
             // When you're talking from the outer scope point of view
}

在某些人类语言(afaik Italian,Russian)中,同义词被广泛用于这些术语。

  • 参数 = 形式参数
  • 参数 = 实际参数

在我的大学教授中使用这两种名称。

答案 26 :(得分:0)

由于我的背景和主要环境是C,因此我将从实际的C标准和一本重要的参考书(也来自C的开发人员之一)中对该主题提供一些陈述/引用,该文献经常被引用并被视为C的第一个非官方标准:


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

  

第25页的1.7节-函数

     

我们通常将 parameter 用于在函数定义的括号列表中命名的变量,并将 argument 用作函数调用中的值。有时,形式参数实际参数用于相同的区分。

ISO / IEC 9899:2018(C18):

  

3.3

     

参数

     

实际论点

     

已弃用:实际参数

     

在函数调用表达式中以括号分隔的逗号分隔列表中的表达式,或在类似函数的宏调用中以括号分隔的逗号分隔列表中的预处理标记序列。


  

3.16

     

参数

     

形式参数

     

已弃用:形式参数

     

被声明为函数声明或定义的一部分的对象,该对象在进入函数时获取值,或者是在类似函数的宏定义中紧随宏名称之后的逗号分隔列表中的标识符(该括号以括号括起来)。 / p>

答案 27 :(得分:0)

这是一个key:value问题...

参数是关键

参数就是价值

/********************************************/

示例:

姓名:“彼得”

/********/

let printName = (name) => console.log(name)

printName("Peter")

/********/

在这种情况下,参数是“name”,参数是“Peter”

答案 28 :(得分:0)

你需要回到基础。两个构造函数和方法都有参数和参数。许多人甚至调用构造函数特殊的方法。这就是声明方法参数的方法

      type name(parameters){
           //body of method
          }

这就是构造函数声明参数的方式

classname(parameters){
//body
}

现在让我们看一个用于计算多维数据集音量的示例代码:

public class cuboid {
    double width;
    double height;
    double depth;

      cuboid(double w,double h,double d) { 
      //Here w,h and d are parameters of constructor
       this.width=w;
       this.height=h;
       this.depth=d;
       }

        public double volume() {
        double v;
        v=width*height*depth;
        return v;
        }
        public static void main(String args[]){
           cuboid c1=new cuboid(10,20,30);
           //Here 10,20 and 30 are arguments of a constructor
           double vol;
           vol=c1.volume();
           System.out.println("Volume is:"+vol);

           }
    }

所以现在你明白,当我们在代码中的某个地方调用构造函数/方法时,我们会传递参数而不是参数.Hence参数仅限于定义逻辑对象但参数发挥作用的地方实际创建物理对象时。

答案 29 :(得分:0)

Parameter (computer programming) - Wikipedia

中完美地解释了这一点

松散地,参数是一个类型,参数是一个实例。

在函数定义f(x) = x*x中,变量x是一个参数;在函数调用f(2)中,值``2是函数的参数。

Parameter - Wikipedia

computer programming中,常用parameter两个概念,称为parameters and arguments - 或者更正式地称为形式参数和< strong>实际参数。

例如,在诸如

之类的函数的定义中

y = f(x) = x + 2,

x 是已定义函数的形式参数参数)。

评估给定值的函数时,如

f(3): or, y = f(3) = 3 + 2 = 5,

实际参数参数),用于定义函数的评估;它是一个给定值(实际值),用于替换定义函数的形式参数。 (在临时使用中,术语参数参数可能会无意中被互换,从而使用不当。)

答案 30 :(得分:0)

我想通了,意识到我之前的回答是错误的。这是一个更好的定义

{想象一盒鸡蛋:一包香肠链接:和一个女佣}这些代表了准备所需功能的元素:(使用任何名称:让我们说烹饪是一个名称我的功能)。

女佣是一种方法。

(您必须__call_或要求此方法来制作早餐)(制作早餐的行为是功能,名为烹饪)_ < / p>

鸡蛋和香肠是参数:

(因为你要吃的鸡蛋数量和香肠数量是__variable_。)_

你的决定是一个论点:

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

{助记符}

_“当你打电话给女仆并请她做早餐时,她__与你讨论你应该吃多少鸡蛋和香肠。她关心你的胆固醇”__

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

答案 31 :(得分:0)

参数是用于存储传递给函数以供函数使用的数据的变量。 参数是调用函数时传递给函数的实际数据:

// 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);

答案 32 :(得分:0)

函数的形式参数在函数声明中列出,并在函数定义的主体中使用。正式的参数(任何种类)都是一种空白或占位符,在调用函数时会填充一些东西。

参数是用于填写形式参数的东西。当您记下函数调用时,参数将在函数名称后的括号中列出。执行函数调用时,会插入参数的参数。

术语按值调用按引用调用是指插件过程中使用的机制。在call-by-value方法中,仅使用参数的值。在这个按值调用机制中,形式参数是一个局部变量,它初始化为相应参数的值。在call-by-reference机制中,参数是一个变量,并使用整个变量。在call-by-reference机制中,参数变量替换形式参数,以便对形参数进行的任何更改实际上都是对参数变量进行的。

答案 33 :(得分:0)

参数是函数接收的变量。它们在函数声明中可见。它们包含变量名及其数据类型。 参数是传递给另一个函数的实际值。这就是为什么我们可以在函数调用中看到它们。它们只是没有数据类型的值

答案 34 :(得分:-1)

  • 参数
    • 已经“内置”到函数中的值。
    • 可以更改参数,以便将该功能用于其他用途。
  • 参数
    • 函数的输入
    • 影响函数结果的变量。

Source