Здравствуйте, Fortnum, Вы писали:
F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Осторожно выскажу предположение, что это зависит от контекста
Здравствуйте, Fortnum, Вы писали:
F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Параметр — переменная в объявлении функции, аргумент — выражение, которые передается при вызове функции.
Здравствуйте, 0BD11A0D, Вы писали:
F>>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения? BDA>Параметр — переменная в объявлении функции, аргумент — выражение, которые передается при вызове функции. BDA>
BDA>void Foo(int i);
BDA>...
BDA>Foo(0);
BDA>
BDA>i — параметр, 0 — аргумент.
Надо будет SO посмотреть... а вообще, разве не так?
0 — аргумент, оно же значение параметра, оно же фактический параметр
i — параметр, он же аргумент функции
f(x), где f — название функции, x — аргумент функции (без значения).
Здравствуйте, Fortnum, Вы писали:
F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Судя по википедии, параметр — это различие похожих множеств, функций, "коэффициент пропорциональности". Аргумент — более близок к термину "значение передаваемое функции".
Здравствуйте, Fortnum, Вы писали:
F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Здравствуйте, Fortnum, Вы писали:
F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Напоминаю, что параметры бывают формальные:
// i - формальный параметр.void foo(int i);
и фактические:
// 10 - фактический параметр.
foo(10);
Аргумент — просто другое название для параметров, применяется вместо более длинных выражений: "формальный параметр" и "фактический параметр", при этом конкретное значение должно определяться контекстом.
Википедия, как всегда, жжёт напалмом:
Пара́метр в программировании — принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое. Т.е. вызывающий код передает аргумент в параметр, который определен в члене спецификации функции.
Ну, хорошо, хоть не "взгляд на параметры".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Кстати, не знаю уж, насколько этот комментарий соответствует действительности английского языка, но если соответствует, то многое объясняет:
A "parameter" is a placeholder. They set the response format, in spoken language. By definition, it's party to the call, limiting the response.
An "argument" is a position that is being considered. You argue your opinion: you consider an argument.
[...]
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
1.3.1 argument
an expression in the comma-separated list bounded by the parentheses in a function call expression, a
sequence of preprocessing tokens in the comma-separated list bounded by the parentheses in a function-like
macro invocation, the operand of throw, or an expression, type-id or template-name in the commaseparated
list bounded by the angle brackets in a template instantiation. Also known as an actual argument
or actual parameter.
1.3.9 parameter
an object or reference declared as part of a function declaration or definition, or in the catch clause of an
exception handler, that acquires a value on entry to the function or handler; an identifier from the commaseparated
list bounded by the parentheses immediately following the macro name in a function-like macro
definition; or a template-parameter. Parameters are also known as formal arguments or formal parameters.
То есть аргумент — это то, что указывается при вызове функции (может называться актуальным (фактическим) параметром или аргументом).
Параметр — часть объявления или определения функции (может называться формальным параметром или аргументом).
Здравствуйте, Fortnum, Вы писали:
F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Существуют разные терминологии. Не уверен, что есть однозначная трактовка. Обычно в трудах, претендующих на основательность (например таких, как книга Бертрана Мейера "Object-oriented software construction") явным образом формулируется, что имеется в виду под "параметром" и "аргументом".
Здравствуйте, Fortnum, Вы писали:
F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Практически, синонимы. Но есть нюансы смысла.
Параметр — это управляющее значение, а аргумент — входное.
Например, для линейной функции y = kx+b значения k и b — это параметры, а x — аргумент.
Если такое смысловое разделение присутствует — чаще всего, по аспекту времени, — то стоит и терминологически разнести.
Величины времени компиляции и конфигурации, устанавливаемые однократно, — это будут параметры, а по-настоящему переменные величины, изменяемые многажды, — это аргументы.
template<int b> int linear(int k, int x) { return k*x + b; } // b - параметр шаблона; k и x - аргументы функцииint scale(int k, int x) { return linear<0>(k,x); } // формально, оба аргумента равноправны, но мы-то знаем...int negate(int x) { return scale(-1, x); } // negate - это функция одного аргумента, вызывающая linear с параметрами k=-1 и b=0
// или, в одну кучу,
function<int(int)> negate = bind(linear<0>, -1, _1); // причём параметр k=-1 был установлен в рантайме, - но однократно, при старте программы
А если параметры имеют иную природу, — например, являются типами, — то сам бог велел их отличать от аргументов
Хотя, окунаясь в метапрограммирование, т.е. оставаясь в одном и том же отрезке времени, мы снова потеряем различие между аргументами метафункций — типами, числами, кусками кода в макросах и т.п.
Здравствуйте, Fortnum, Вы писали: F>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения?
Здравствуйте, Кодт, Вы писали:
F>>Параметр и аргумент — это синонимы или есть иные мнения? Допустимо ли под словом "аргумент" понимать параметр без значения? К>Практически, синонимы. Но есть нюансы смысла. К>Параметр — это управляющее значение, а аргумент — входное. К>Например, для линейной функции y = kx+b значения k и b — это параметры, а x — аргумент.
Параметр — это более широкое понятие. Все аргументы можно назвать параметрами — не ошибешься. Но не все параметры можно назвать аргументами.
Когда говорят "аргумент", обязательно имеют в виду какой-то контекст. Не может существовать аргумент без контекста. А параметр может.
Параметр — просто переменная величина. Аргумент — переменная величина в каком-то контексте, не обязательно со значением. Как "х" в твоем примере выше является аргументом, не имея значения. Этот "х" просто аргумент функции с параметрами.
Можно ли придумать такой случай, где аргумент не был бы параметром?
И можно ли придумать такой случай, где параметр не являлся бы аргументом при наличии контекста?
Здравствуйте, Fortnum, Вы писали:
F>Когда говорят "аргумент", обязательно имеют в виду какой-то контекст. Не может существовать аргумент без контекста. А параметр может.
Что ты называешь контекстом? И в чём проявляется разница?
F>Параметр — просто переменная величина. Аргумент — переменная величина в каком-то контексте, не обязательно со значением. Как "х" в твоем примере выше является аргументом, не имея значения. Этот "х" просто аргумент функции с параметрами.
Тут смешение 4 понятий:
— именованный вход
— точки подстановки в выражение (в тело функции)
— область применения функции
— ну и, собственно, "фактический аргумент" — конкретное значение, поданное на вход функции
F>Можно ли придумать такой случай, где аргумент не был бы параметром?
Аргумент комплексного числа
F>И можно ли придумать такой случай, где параметр не являлся бы аргументом при наличии контекста?
Только после того, как ты сформулируешь, что такое контекст