Какая разница между аргументом и параметром?

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

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

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

Резюме

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

Ответ 1

Параметр - это переменная в определении метода. Когда вызывается метод, аргументы - это данные, которые вы передаете в параметры метода.

public void MyMethod(string myParam) { }

...

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

Ответ 2

Параметр является переменной в объявлении функции.

Аргумент - это фактическое значение этой переменной, которое передается функции.

Ответ 3

Уже есть запись в Википедии по этой теме (см. Parameter), которая определяет и отличает термины параметр и аргумент. Короче говоря, параметр является частью сигнатуры функции/процедуры/метода, а аргумент - это фактическое значение, указанное во время выполнения и/или сайт вызова для параметра.

В статье в Википедии также говорится, что эти два термина часто используются синонимично (особенно, если рассуждать о коде неформально):

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

Учитывая следующую примерную функцию в C, которая добавляет два целых числа, x и y будут называться его параметрами:

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

На сайте-вызове с использованием add, например, приведенном ниже примере, 123 и 456 будут называться аргументами вызова.

int result = add(123, 456);

Кроме того, некоторые спецификации языка (или официальная документация) предпочитают использовать только параметр или аргумент и использовать прилагательные, такие как формальные и фактические, вместо этого, чтобы устранить двусмысленность между этими двумя случаями. Например, документация на C/С++ часто ссылается на параметры функции как формальные аргументы и аргументы вызова функции как фактические аргументы. Например, см. Формальные и фактические аргументы в Visual С++ Language Ссылка.

Ответ 4

Простой:

  • P ARAMETER → P LACEHOLDER (это означает, что местозаполнитель принадлежит названию функции и используется в теле функции)
  • A RGUMENT → A СТРУКТУРНОЕ ЗНАЧЕНИЕ (Это означает фактическое значение, которое передается вызовом функции)

Ответ 5

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

Просто установите: аргумент переходит в параметр, аргументом является значение параметра.

Немного больше информации о: http://en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments

Ответ 6

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

MCSD Cerfification Toolkit (Экзамен 70-483) Программирование на С#, 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

В редактировании меня часто откладывают на то, как люди забывают: языки структуры основаны на естественных языках.

По-английски

"Параметр" является заполнителем. Они устанавливают формат ответа на разговорном языке. По определению, он участвует в вызове, ограничивая ответ.

"Аргумент" - это позиция, которая рассматривается. Вы утверждаете свое мнение: вы считаете аргумент.

Основное различие

Тематическая роль аргумента - это агент. Тематическая роль параметра - получатель.

Взаимодействия

Вспомните аргумент как мужскую часть, сделав параметр женской частью. Аргумент переходит в параметр.

Использование

Параметр обычно используется в определениях. Аргумент обычно используется в вызовах.

Вопросы

Завершите предложение, чтобы сделать его менее диссонирующим.

(A) Говоря об определении:

  • Какой аргумент будет использован []?
  • Что [] будет этот параметр []?

(B) Говоря о вызове:

  • Какой параметр вы используете, []?
  • Что [] будет [] этот параметр?

Ответы

(A)

  • on/in/против/с этим параметром
  • аргумент (ы)... принять

(B)

  • и какие примеры аргументов
  • аргумент (ы)... используется в/in/против/с

Перекрытия

Как вы можете себе представить, после ответа: на разговорном языке эти слова будут иногда давать одинаковые ответы!

Итак, как правило:

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

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

Ответ 8

Параметры функции/метода описывают вам значения, которые он использует для вычисления его результата.

аргументы of - это значения, назначенные этим параметрам во время конкретного вызова функции/метода.

Ответ 9

Или может быть еще проще запомнить это в случае дополнительных аргументов для метода:

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

}

parameter - это параметр, его значение, "argument" является аргументом:)

Ответ 10

Термины несколько взаимозаменяемы. Различие, описанное в других ответах, более правильно выражается терминами формального параметра для имени, используемого внутри тела функции и параметра для значения, предоставленного на сайте вызова (формальный аргумент и аргумент также являются общими). ​​

Также обратите внимание, что в математике термин аргумент гораздо более распространен, и параметр обычно означает нечто совершенно другое (хотя параметр в параметрическом уравнении по существу является аргументом для двух или более функций).

Ответ 11

Этот пример может помочь.

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

Скажем, вы авиакомпания. Вы строите самолет. Вы устанавливаете места в нем. Затем вы заполняете самолет пассажирами и отправляете их где-нибудь. Пассажиры (вернее, некоторые измененные по пространственно-измененной версии) высаживаются. На следующий день вы снова используете тот же самолет и те же места, но с разными пассажирами на этот раз.

Плоскость - это ваша функция.

Параметры - это места.

Аргументы - это пассажиры, которые ходят на этих местах.

Ответ 13

Параметры и аргументы

Все разные термины, которые связаны с параметрами и аргументами, могут сбивать с толку. Однако, если у вас есть несколько простых соображений, вы сможете легко справиться с этими условиями.

  1. Формальные параметры для функции перечислены в объявлении функции и используются в теле определения функции. Формальный параметр (любого рода) является своего рода пробелом или заполнителем, который заполняется чем-то, когда вызывается функция.
  2. Аргумент - это то, что используется для заполнения формального параметра. Когда вы записываете вызов функции, аргументы перечисляются в скобках после имени функции. Когда вызов функции выполняется, аргументы подключаются к формальным параметрам.
  3. Приведенные ниже термины call- и call- относятся к механизму, который используется при подключении. В методе by-value call- используется только значение аргумента. В этом call- механизме by-value формальный параметр является локальной переменной, которая инициализируется значением соответствующего аргумента. В механизме call- by-reference аргумент является переменной и используется вся переменная. В механизме call- by-reference переменная аргумента заменяется формальным параметром, так что любое изменение, которое делается для формального параметра, фактически выполняется для переменной аргумента.

Источник: Абсолют C++, Уолтер Саввич

То есть,

enter image description here

Ответ 14

Всегда помните, что: - Аргументы передаются при получении параметров.

Ответ 15

Параметр является переменной в объявлении функции.

Аргумент - это фактическое значение этой переменной, которое передается в функцию. enter image description here

Ответ 16

Аргумент - это экземпляр параметра.

Ответ 17

Да! Параметры и аргументы имеют разные значения, которые можно легко объяснить следующим образом:

Функция Параметры - это имена, перечисленные в определении функции.

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

Ответ 18

Или даже проще...

Аргументы в!

Параметры out!

Ответ 19

Оба они не имеют большой разницы в использовании в 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 являются фактическими аргументами.

Ответ 20

Простые объяснения без кода

"Параметр" - это очень общая, широкая вещь, но "аргумент: это очень конкретная, конкретная вещь. Это лучше всего иллюстрируется повседневными примерами:

Пример 1: Торговые автоматы - деньги - это параметр, $ 2,00 - аргумент

Большинство машин принимают входные данные и возвращают выходные данные. Например, торговый автомат принимает в качестве входных данных: money и возвращает: газированные напитки в качестве выходных данных. В этом конкретном случае он принимает в качестве параметра: деньги.

Какой тогда аргумент? Ну, если я положу $ 2,00 в машину, то аргумент будет: $ 2,00 - это очень конкретный вход.

Пример 2: Автомобили - Бензин является параметром

Давайте рассмотрим автомобиль: они принимают бензин (неэтилированный бензин) в качестве входа. Можно сказать, что эти машины принимают параметры типа: бензин. Аргументом будет точный и конкретный вклад, который я вложил в свою машину. Например, в моем случае аргумент будет: 40 литров неэтилированного бензина/бензина.

Пример 3 - Разработка аргументов

Аргумент - это конкретный и конкретный пример ввода. Предположим, моя машина принимает человека за вход и превращает его в человека, который не лжец.

Что тогда является аргументом? Аргументом будет конкретный человек, который фактически помещен в машину. например, если Колин Пауэлл будет помещен в машину, то аргумент будет Колин Пауэлл.

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

Это разница. Просто.

Смущенный?

Оставьте комментарий, и я исправлю объяснение.

Ответ 21

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

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

Ответ 22

Логически говоря, мы говорим об одном и том же. Но я думаю, что простая метафора была бы полезной для решения этой дилеммы.

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

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

Ответ 23

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

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

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

Ответ 24

Согласно книге Иосифа Алабахари "С# в двух словах" (С# 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
}

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

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

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

Ответ 25

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

Ответ 26

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

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

Термины call-by-value и call-by-reference относятся к механизму, который используется при подключении. В методе "по вызову" используется только значение аргумента. В этом механизме "позывной" формальный параметр является локальной переменной, которая инициализируется значением соответствующего аргумента. В механизме вызова по ссылке аргумент является переменной и используется вся переменная. В механизме вызова по ссылке переменная аргумента заменяется формальным параметром, так что любое изменение, которое делается для формального параметра, фактически выполняется для переменной аргумента.

Ответ 27

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

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

Ответ 28

Аргумент, переданный функции/методу, сохраняется в его параметре.

Ответ 29

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

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

A Maid - это метод.

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

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

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

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

Он представляет __Value_ выбранного количества яиц и/или колбасных изделий, которые вы готовите._

{Мнемоник}

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

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

Ответ 30

Это прекрасно объяснялось в Parameter (компьютерное программирование) - Wikipedia

Неправильно параметр является типом, а аргумент - экземпляром.

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

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

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

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

y = f(x) = x + 2,

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

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

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

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