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

我是一名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;
}

其他回答

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

MCSD认证工具包(考试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);

是的!参数和参数有不同的含义,可以简单解释如下:

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

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

根据Joseph的Alabahari的书“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
}

在一些人类语言(如意大利语、俄语)中,这些术语的同义词被广泛使用。

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

在我的大学里,教授们两种名字都用。

你得回到最基本的问题上来。构造函数和方法都有形参和实参。很多人甚至把构造函数称为特殊的方法。这是一个方法声明参数的使用方式:

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

           }
    }

现在你明白了,当我们在代码后面的某个地方调用对象的构造函数/方法时,传递的是参数而不是形参。因此,形参仅限于定义逻辑对象的地方,而实参则在实际创建物理对象时发挥作用。

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

维基百科的文章还指出,这两个术语通常是同义词(特别是在非正式地对代码进行推理时):

虽然参数也很常见 称为论点,论点 更恰当的说法是 指定的实际值或引用 参数变量时 子例程在运行时被调用。

给定以下C语言中两个整数相加的示例函数,x和y将被称为它的参数:

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

在使用add的调用站点中,例如下面所示的示例,123和456将被引用为调用的参数。

int result = add(123, 456);

此外,一些语言规范(或正式文档)选择专门使用参数或参数,并使用像正式和实际这样的形容词来消除两种情况之间的歧义。例如,C/ c++文档经常将函数形参作为正式实参,将函数调用实参作为实际实参。有关示例,请参阅Visual c++语言参考手册中的“正式和实际参数”。