В чем разница между аргументом и параметром? - PullRequest
606 голосов
/ 01 октября 2008

Говоря о методах в устной форме, я никогда не уверен, использовать ли слово аргумент или параметр или что-то еще. В любом случае другие люди знают, что я имею в виду, но что правильно, и какова история терминов?

Я программист на C #, но мне также интересно, используют ли люди разные термины на разных языках.

Для справки, я самоучка без знания компьютерных наук. (Пожалуйста, не говорите мне, чтобы я прочитал Code Complete , потому что я спрашиваю это для других людей, у которых еще нет копии Стива МакКоннелла изумительной книги .)

Резюме

По общему мнению, эти термины можно использовать взаимозаменяемо в командной среде. За исключением, возможно, когда вы определяете точную терминологию; тогда вы также можете использовать « формальный аргумент / параметр» и « фактический аргумент / параметр» для устранения неоднозначности.

Ответы [ 31 ]

3 голосов
/ 27 октября 2013

Они оба не имеют большой разницы в использовании в 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; 
}

В приведенном выше коде num1 и num2 являются формальными параметрами, а a и b являются действительными аргументами.

3 голосов
/ 10 марта 2016

В руководствах Oracle по Java это различие определяется следующим образом: «Параметры ссылаются на список переменных в объявлении метода. Аргументы - это фактические значения, которые передаются при вызове метода. Когда вы вызываете метод, используемые аргументы должны соответствовать параметрам объявления в типе и порядке.»

Более подробное обсуждение параметров и аргументов: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html

2 голосов
/ 23 марта 2016

Когда мы создаем метод (функцию) в Java, метод, подобный этому ..

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

В скобках это параметры, и когда мы вызываем метод (функцию), мы передаем значение этого параметра, которое называется аргументом.

2 голосов
/ 01 декабря 2018

Параметр является переменной в определении функции
Аргументом является значение параметра

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

?>
2 голосов
/ 19 января 2018

Согласно книге Джозефа Алабахари "C # в двух словах" (C # 7.0, стр. 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
}

В некоторых человеческих языках (афаикский итальянский, русский) для этих терминов широко используются синонимы.

  • параметр = формальный параметр
  • аргумент = фактический параметр

В моем университете профессора используют оба вида имен.

0 голосов
/ 01 июня 2018

Вы должны вернуться к основам. У обоих конструкторов и методов есть параметры и аргументы. Многие даже называют конструкторы специальными методами. Вот как метод объявляется используются параметры :

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

           }
    }

Итак, теперь вы понимаете, что когда мы вызываем конструктор / метод для объекта в каком-то месте позже в коде, мы передаем аргументы, а не параметры. Значения параметров ограничены тем местом, где определен логический объект, но вступают в игру аргументы когда физический объект действительно создается.

0 голосов
/ 19 марта 2018

Это прекрасно объяснено в Параметр (компьютерное программирование) - Википедия

Обычно параметр является типом, а аргумент - экземпляром.

В определении функции f(x) = x*x переменная x является параметром; в вызове функции f(2) значение `` 2 является аргументом функции.

А Параметр - Википедия

В компьютерном программировании обычно используются два понятия параметра , которые называются параметрами и аргументами - или, более формально, формальный параметр и фактический параметр .

Например, в определении функции, такой как

y = f(x) = x + 2,

x - это формальный параметр ( параметр ) определенной функции.

Когда функция оценивается для данного значения, как в

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

- фактический параметр (аргумент ) для оценки по определенной функции; это заданное значение (фактическое значение), которое заменяет формальный параметр определенной функции. (При случайном использовании термины параметр и аргумент могут случайно поменяться местами и, таким образом, использоваться неправильно.)

0 голосов
/ 10 декабря 2017

Я все обдумал и понял, что мой предыдущий ответ был неверным. Вот намного лучшее определение

{ Представьте себе коробку яиц: пачка сосисочных колец: и горничная } Они представляют собой элементы функции, необходимой для приготовления, называемой: (используйте любое имя: допустим, кулинария - это имя моего функция).

Горничная - это метод.

(Вы должны __call_ или задать этот метод для приготовления завтрака) (Процесс приготовления завтрака представляет собой функцию , называемую Приготовление пищи ) _

Яйца и колбасы являются параметрами:

(потому что количество яиц и количество колбас, которые вы хотите съесть, __variable_.) _

Ваше решение является аргументом:

Представляет __Value_ выбранного количества яиц и / или колбас, которые вы готовите ._

{ Мнемоника }

_ "Когда вы позвоните горничной и попросите ее приготовить завтрак, она ___ расскажет вам, сколько яиц и колбас вы должны съесть. Она беспокоится о вашем холестерине" __

(Аргументы - это значения для комбинации параметров, которые вы объявили и решили передать своей функции)

0 голосов
/ 27 ноября 2016

Параметры - это переменные, полученные функцией. Поэтому они видны в объявлении функции. Они содержат имя переменной с типом данных. Аргументы - это фактические значения, которые передаются другой функции. вот почему мы можем видеть их в вызове функции. Они просто значения без своего типа данных

0 голосов
/ 26 июля 2017

Параметры - это переменные, которые используются для хранения данных, которые передаются в функцию для использования функцией. Аргументы - это фактические данные, которые передаются в функцию при ее вызове:

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