Разница между параметром и аргументом

Есть ли разница между "параметром" и "аргументом", или они просто синонимы?

Ответ 1

Аргумент часто используется в смысле "фактического аргумента" по сравнению с "формальным параметром".

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

Говоря это, они часто используются взаимозаменяемо или в зависимости от языка/сообщества, и я также слышал "фактический параметр" & c.

Итак, x и y будут формальными параметрами:

int foo(int x, int y) {
    ...
}

В то время как здесь, в вызове функции, 5 и z являются фактическими аргументами:

foo(5, z);

Ответ 2

Как правило, параметры - это то, что используется внутри функции, а аргументы - значения, передаваемые при вызове функции. (Если вы не придерживаетесь противоположного мнения - Wikipedia упоминает альтернативные соглашения при обсуждении параметров и аргументов).

double sqrt(double x)
{
    ...
    return x;
}

void other(void)
{
     double two = sqrt(2.0);
}

Под моим тезисом, x является параметром sqrt() а 2.0 - аргументом.

Термины часто используются, по крайней мере, несколько взаимозаменяемо.

Ответ 3

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

Ответ 4

Аргументы и параметры различны в том, что параметры используются для разных значений в программе и Аргументы передаются с одинаковым значением в программе, поэтому они используются в С++. Но никакой разницы в c. То же самое для аргументов и параметров в c.