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

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

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

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

Резюме

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

Ответы [ 31 ]

733 голосов
/ 01 октября 2008

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

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);
287 голосов
/ 01 октября 2008

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

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

69 голосов
/ 01 октября 2008

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

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

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

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

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

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

int result = add(123, 456);

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

53 голосов
/ 25 апреля 2017

Simple:

  • P ARAMETER → P LACEHOLDER (Это означает, что заполнитель принадлежит именованию функции и будет использоваться в теле функции)
  • A RGUMENT → A CTUAL VALUE (Это означает фактическое значение, которое передается вызывающим функцией)
30 голосов
/ 01 октября 2008

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

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

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

13 голосов
/ 08 июля 2018

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

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

12 голосов
/ 23 июня 2014

Использование терминов параметры и аргументы были использованы неправильно несколько среди программистов и даже авторов. Когда имеешь дело с Методы, термин параметр используется для определения заполнителей в сигнатура метода, тогда как термин arguments является фактическим значения, которые вы передаете в метод.

Инструментарий сертификации 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);
9 голосов
/ 02 июня 2014

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

На английском

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

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

Основное отличие

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

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

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

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

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

Вопросы

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

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

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

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

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

Ответы

(А)

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

(В)

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

Перекрытия

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

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

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

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

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

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

}

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

7 голосов
/ 06 апреля 2017

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

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

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

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

То есть

enter image description here

...