¿Cuál es la diferencia entre un argumento y un parámetro?

718

Cuando hablo verbalmente sobre métodos, nunca estoy seguro de si usar la palabra argumento o parámetro u otra cosa. De cualquier manera, las otras personas saben a qué me refiero, pero ¿qué es correcto y cuál es el historial de los términos?

Soy un programador de C #, pero también me pregunto si las personas usan términos diferentes en diferentes idiomas.

Para el registro, soy autodidacta sin experiencia en informática. (Por favor, no me diga que lea Code Complete porque estoy pidiendo esto en beneficio de otras personas que aún no tienen una copia del maravilloso libro de Steve McConnell ).

Resumen

El consenso general parece ser que está bien usar estos términos indistintamente en un entorno de equipo. Excepto quizás cuando está definiendo la terminología precisa; entonces también puede usar " argumento / parámetro formal " y " argumento / parámetro real " para desambiguar.

rohancragg
fuente
99
Los uso indistintamente ... nadie se ha reído de mí todavía ... 'esta función tiene 4 argumentos ... esta función toma 4 parámetros'. suena igual
Gishu
54
Está bien usarlos de manera intercambiable, excepto cuando está tratando de describir cómo funcionan los parámetros y cómo se pasan los argumentos, etc. En ese punto, la terminología precisa (que a veces puede ser difícil expresar) es útil.
Jon Skeet
2
Hay al menos dos versiones no cerradas, independientes del lenguaje de esta pregunta: stackoverflow.com/questions/3176310/… y stackoverflow.com/questions/427653/arguments-or-parameters . También hay otra versión C # de esta pregunta; He solicitado una fusión.
Aparece el
1
Me alegra que hayas mencionado a Steve McConnell. Conocí a un tipo más que conoce la artesanía del software junto con Robert C. Martin.
RBT
3
Creo que independientemente de si se encuentra en un entorno formal o no, debe esforzarse por usar los términos correctos. Creo que es bastante simple. Cuando llamas a un método, pasas argumentos. Cuando define el método, está definiendo los parámetros que tomarán los argumentos de la llamada al método / función. argumento: una variable independiente asociada con una función y que determina el valor de la función. parámetro: un límite o límite que define el alcance de un proceso o actividad en particular.
jsquaredz

Respuestas:

906

Un parámetro es una variable en la definición de un método. Cuando se llama a un método, los argumentos son los datos que pasa a los parámetros del método.

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);
Torbjörn Hansson
fuente
196
Una nemotécnica aliteradora que puede ayudar: los argumentos son reales. ;)
thSoft
8
La respuesta menciona que "el parámetro es una variable en la definición de un método", pero podría ser mejor decir "declaración de método" [si alguien hace una distinción entre 'declaración' y 'definición']
nandan
110
"Usted define parámetros y presenta argumentos".
Greg M. Krsak
55
parámetro => cuando definimos la función, argumento => cuando llamamos a ese método. (CORREGIRME SI
ESTOY
77
Los parámetros son los nombres. Los argumentos son los valores.
Aziz Alto
327

El parámetro es variable en la declaración de función.

El argumento es el valor real de esta variable que se pasa a la función.

Rinat Abdullin
fuente
77
Estos lenguajes generalmente se refieren a la lista de argumentos / parámetros pasados ​​a un método como *argso ARGVno *params:-)
karatedog
66
*paramssería el nombre de una variable que debe contener los nombres de los parámetros (tal vez utilizados para la introspección).
trss
66
@karatedog Y eso está completamente en línea con esta distinción, en realidad. Los parámetros se nombran en el momento de la declaración, los argumentos solo se conocen en el momento de la llamada. La sintaxis *argsdeclara un parámetro args cuyo valor es una lista (nombre y tipo conocidos en el momento de la declaración) de los argumentos (cuyo número solo se conoce en el momento de la llamada).
Emil Lundberg el
72

Ya hay una entrada de Wikipedia sobre el tema (ver Parámetro ) que define y distingue los términos parámetro y argumento . En resumen, un parámetro es parte de la firma de función / procedimiento / método y un argumento es el valor real suministrado en tiempo de ejecución y / o sitio de llamada para el parámetro.

El artículo de Wikipedia también establece que los dos términos a menudo se usan como sinónimos (especialmente cuando se razona sobre el código de manera informal):

Aunque los parámetros también se conocen comúnmente como argumentos, los argumentos se consideran más adecuadamente como los valores reales o referencias asignadas a las variables de parámetros cuando se llama a la subrutina en tiempo de ejecución.

Dado el siguiente ejemplo de función en C que agrega dos enteros, xy ysería referido como sus parámetros:

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

En el uso de un sitio de llamada add, como el ejemplo que se muestra a continuación, 123 y 456 se denominarían argumentos de la llamada.

int result = add(123, 456);

Además, algunas especificaciones de lenguaje (o documentación formal) eligen usar parámetros o argumentos exclusivamente y usan adjetivos como formal y actual para desambiguar entre los dos casos. Por ejemplo, la documentación de C / C ++ a menudo se refiere a los parámetros de función como argumentos formales y los argumentos de llamada de función como argumentos reales . Para ver un ejemplo, consulte " Argumentos formales y reales " en la Referencia del lenguaje Visual C ++ .

Atif Aziz
fuente
+1 para explicar cómo se usan comúnmente, así como sus definiciones formales, y también para mencionar el uso común de argumentos / parámetros "formales" y "reales" para distinguirlos sin ambigüedad.
Caracol mecánico
Esta es una gran explicación, pero es casi imposible de entender en comparación con la simplicidad del concepto. Un parámetro es lo que se acepta, un argumento es lo que se llama. Es una calle de sentido único.
ihodonald
69

Simple:

  • P ARAMETER → P LACEHOLDER (Esto significa que un marcador de posición pertenece a la función de denominación y se usa en el cuerpo de la función)
  • A RGUMENT → A CTUAL VALUE (Esto significa un valor real que pasa la función que llama)
Duc Filan
fuente
3
Buen gancho de memoria
Tanckom
29

El parámetro es variable en la declaración de función.

El argumento es el valor real de esta variable que se pasa a la función. ingrese la descripción de la imagen aquí

usuario6864832
fuente
16

El uso de los términos parámetros y argumentos han sido mal utilizados de alguna manera entre programadores e incluso autores. Cuando se trata de métodos, el término parámetro se usa para identificar los marcadores de posición en la firma del método, mientras que los argumentos del término son los valores reales que usted pasa al método.

MCSD Cerfification Toolkit (Examen 70-483) Programación en C # , primera edición, Wrox, 2013

Escenario de caso del mundo real

// 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);
ZenLulz
fuente
10

En la edición, a menudo me desanima cómo la gente olvida: los lenguajes de estructura se basan en lenguajes naturales.

En inglés

Un "parámetro" es un marcador de posición. Establecen el formato de respuesta, en lenguaje hablado. Por definición, es parte de la llamada, lo que limita la respuesta.

Un "argumento" es una posición que se está considerando. Argumenta su opinión: considera una discusión.

Diferencia principal

El papel temático de un argumento es agente. El papel temático del parámetro es el destinatario.

Interacciones

Piense en el argumento como la parte masculina, convirtiendo el parámetro en la parte femenina. El argumento entra en el parámetro.

Uso

Un parámetro se usa generalmente en las definiciones. Un argumento se usa generalmente en invocaciones.

Preguntas

Termina la oración para que sea menos disonante.

(A) Hablando de una definición:

  1. ¿Qué argumento se usará []?
  2. ¿Qué [] será este parámetro []?

(B) Hablando de una invocación:

  1. ¿Qué parámetro usarás, []?
  2. ¿Cuál [] será [] este parámetro?

Respuestas

(UNA)

  1. en / en / contra / con este parámetro
  2. argumento (s) ... tomar

(SI)

  1. y cuales son algunos ejemplos de argumentos
  2. argumento (s) ... utilizado en / in / against / with

Solapamientos

Como puede imaginar, después de responder: en lenguaje hablado, ¡estas palabras a veces producirán respuestas idénticas!

Entonces, como regla:

  • Por lo general, si alguien quiere información de parámetros, quiere saber más sobre el tipo, el nombre de la variable, etc. Pueden confundirse si solo da argumentos de ejemplo.

    • Por lo general, si alguien quiere información sobre argumentos, quiere saber qué valor le pasó a una función o sus parámetros.
Wolfpack'08
fuente
8

Este ejemplo podría ayudar.

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;
}
Saurabh Rana
fuente
8

Recuerde siempre que: - Los argumentos se pasan mientras se reciben los parámetros.

HEMANT GIRI
fuente
8

Los parámetros de una función / método le describen los valores que utiliza para calcular su resultado.

Los argumentos de una función son los valores asignados a estos parámetros durante una llamada particular de la función / método.

Johan
fuente
7

O puede ser aún más simple recordarlo así, en caso de argumentos opcionales para un método:

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

}

parameteres el parámetro, su valor, "argument"es el argumento :)

nawfal
fuente
7

Digamos que eres una aerolínea. Tú construyes un avión. Instalas asientos en él. Luego, llenas el avión con pasajeros y lo envías a algún lado. Los pasajeros (o más bien, alguna versión alterada espacio-temporalmente de los mismos) desembarcan. Al día siguiente, reutiliza el mismo avión y los mismos asientos, pero esta vez con diferentes pasajeros.

El avión es tu función.

Los parámetros son los asientos.

Los argumentos son los pasajeros que van en esos asientos.

XML
fuente
7

Parámetros y Argumentos

Todos los diferentes términos que tienen que ver con parámetros y argumentos pueden ser confusos. Sin embargo, si tiene en cuenta algunos puntos simples, podrá manejar fácilmente estos términos.

  1. Los parámetros formales para una función se enumeran en la declaración de la función y se utilizan en el cuerpo de la definición de la función. Un parámetro formal (de cualquier tipo) es un tipo de espacio en blanco o marcador de posición que se rellena con algo cuando se llama a la función.
  2. Un argumento es algo que se usa para completar un parámetro formal. Cuando escribe una llamada de función, los argumentos se enumeran entre paréntesis después del nombre de la función. Cuando se ejecuta la llamada a la función, los argumentos se conectan para los parámetros formales.
  3. Los términos llamada por valor y llamada por referencia se refieren al mecanismo que se utiliza en el proceso de conexión. En el método de llamada por valor solo se usa el valor del argumento. En este mecanismo de llamada por valor, el parámetro formal es una variable local que se inicializa con el valor del argumento correspondiente. En el mecanismo de llamada por referencia, el argumento es una variable y se utiliza toda la variable. En el mecanismo de llamada por referencia, la variable de argumento se sustituye por el parámetro formal, de modo que cualquier cambio que se realice en el parámetro formal se realiza en la variable de argumento.

Fuente: Absolute C ++, Walter Savitch

Es decir,

ingrese la descripción de la imagen aquí

snr
fuente
6

Los términos son algo intercambiables. La distinción descrita en otras respuestas se expresa más adecuadamente con los términos parámetro formal para el nombre utilizado dentro del cuerpo de la función y parámetro para el valor suministrado en el sitio de la llamada ( el argumento formal y el argumento también son comunes).

También tenga en cuenta que, en matemáticas, el término argumento es mucho más común y el parámetro generalmente significa algo bastante diferente (aunque el parámetro en una ecuación paramétrica es esencialmente el argumento de dos o más funciones).

Marcelo Cantos
fuente
Pero, de nuevo, el término argumento también está sobrecargado, al menos en un análisis complejo.
Caracol mecánico
1
Tengo un parámetro con el argumento de que son intercambiables. ;)
Comodín el
5

Un argumento es una instanciación de un parámetro.

Paul Richter
fuente
44
Es la explicación que me dio otro programador hace mucho tiempo, y pensé que era muy clara y concisa. Lo publiqué aquí por esa razón.
Paul Richter
4

¡Si! Los parámetros y argumentos tienen diferentes significados, que pueden explicarse fácilmente de la siguiente manera:

Los parámetros de función son los nombres enumerados en la definición de función.

Los argumentos de función son los valores reales pasados ​​(y recibidos por) la función.

anoNewb
fuente
4

Explicaciones simples sin código

Un "parámetro" es algo muy general y amplio, pero un "argumento: es algo muy específico y concreto. Esto se ilustra mejor a través de ejemplos cotidianos:

Ejemplo 1: Máquinas expendedoras: el argumento es el dinero, el argumento es $ 2.00

La mayoría de las máquinas toman una entrada y devuelven una salida. Por ejemplo, una máquina expendedora toma como entrada: dinero y devuelve: bebidas gaseosas como salida. En ese caso particular, acepta como parámetro: dinero.

¿Cuál es entonces el argumento? Bueno, si pongo $ 2.00 en la máquina, entonces el argumento es: $ 2.00: es la entrada muy específica utilizada.

Ejemplo 2: automóviles: la gasolina es el parámetro

Consideremos un automóvil: aceptan gasolina (gasolina sin plomo) como insumo. Se puede decir que estas máquinas aceptan parámetros de tipo: gasolina. El argumento sería el aporte exacto y concreto que puse en mi automóvil. Por ejemplo, en mi caso, el argumento sería: 40 litros de gasolina / gasolina sin plomo.

Ejemplo 3 - Elaboración de argumentos

Un argumento es un ejemplo particular y específico de una entrada. Supongamos que mi máquina toma a una persona como entrada y la convierte en alguien que no es un mentiroso.

¿Qué es entonces una discusión? El argumento será la persona particular que realmente se pone en la máquina. por ejemplo, si Colin Powell se coloca en la máquina, entonces el argumento sería Colin Powell.

Entonces, el parámetro sería una persona como un concepto abstracto, pero el argumento siempre sería una persona particular con un nombre particular que se coloca en la máquina. El argumento es específico y concreto.

Esa es la diferencia. Simple.

¿Confuso?

Publique un comentario y arreglaré la explicación.

revs BKSpurgeon
fuente
3

O incluso más simple ...

Argumentos en!

Parámetros fuera!

jpillora
fuente
3

Ambos no tienen mucha diferencia en el uso en C, ambos términos se usan en la práctica. La mayoría de los argumentos se usan a menudo con funciones. El valor pasado con la instrucción que llama a la función se llama argumento, y el parámetro sería la variable que copia el valor en la definición de la función (llamado parámetro formal).

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

En el código anterior num1y num2son parámetros formales y ay bson argumentos reales.

Bevin Sunth
fuente
3

Los tutoriales Java de Oracle definen esta distinción así: "Los parámetros se refieren a la lista de variables en una declaración de método. Los argumentos son los valores reales que se pasan cuando se invoca el método. Cuando se invoca un método, los argumentos utilizados deben coincidir con los parámetros de la declaración en tipo y orden ".

Una discusión más detallada de parámetros y argumentos: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html

J. Clarke
fuente
3

Lógicamente hablando, en realidad estamos hablando de lo mismo. Pero creo que una simple metáfora sería útil para resolver este dilema.

Si las metáforas pueden llamarse varios puntos de conexión, podemos equipararlas para enchufar puntos en una pared. En este caso podemos considerar los parámetros y argumentos de la siguiente manera;

Los parámetros son los enchufes del punto de conexión que pueden tomar varias formas diferentes. Pero solo ciertos tipos de enchufes les quedan bien.
Los argumentos serán los enchufes reales que se conectarían a los puntos / enchufes para activar ciertos equipos.

Nuwan Jayawardene
fuente
3

El parámetro es una variable en una definición de función El
argumento es un valor de parámetro

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

?>
3 revoluciones
fuente
3

En términos generales, los términos parámetro y argumento se usan indistintamente para significar información que se pasa a una función.

Sin embargo, desde la perspectiva de una función:

  • Un parámetro es la variable listada entre paréntesis en la definición de la función.
  • Un argumento es el valor que se envía a la función cuando se llama.
Tiago Martins Peres 李大仁
fuente
2

Cuando creamos el método (función) en Java, el método es así ...

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

Entre paréntesis, estos son los parámetros, y cuando llamamos al método (función) pasamos el valor de este parámetro, que se llama argumentos.

Summra Umair
fuente
2

Según el libro de Joseph Alabahari "C # in a Nutshell" (C # 7.0, p. 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
}

En algunos idiomas humanos (afaik italiano, ruso), los sinónimos se usan ampliamente para estos términos.

  • parámetro = parámetro formal
  • argumento = parámetro real

En mi universidad, los profesores usan ambos tipos de nombres.

burzhuy
fuente
0

Los parámetros son las variables recibidas por una función. Por lo tanto, son visibles en la declaración de la función. Contienen el nombre de la variable con su tipo de datos. Los argumentos son valores reales que se pasan a otra función. Es por eso que podemos verlos en la función de llamada. Son solo valores sin su tipo de datos

shreesh katti
fuente
0

Los parámetros formales para una función se enumeran en la declaración de la función y se utilizan en el cuerpo de la definición de la función. Un parámetro formal (de cualquier tipo) es un tipo de espacio en blanco o marcador de posición que se rellena con algo cuando se llama a la función.

Un argumento es algo que se usa para completar un parámetro formal. Cuando escribe una llamada de función, los argumentos se enumeran entre paréntesis después del nombre de la función. Cuando se ejecuta la llamada a la función, los argumentos se conectan para los parámetros formales.

Los términos llamada por valor y llamada por referencia se refieren al mecanismo que se utiliza en el proceso de conexión. En el método de llamada por valor solo se usa el valor del argumento. En este mecanismo de llamada por valor, el parámetro formal es una variable local que se inicializa con el valor del argumento correspondiente. En el mecanismo de llamada por referencia, el argumento es una variable y se utiliza toda la variable. En el mecanismo de llamada por referencia, la variable de argumento se sustituye por el parámetro formal para que cualquier cambio que se realice en el parámetro formal se haga realmente a la variable de argumento.

Mahm00d
fuente
0

Los parámetros son variables que se utilizan para almacenar los datos que se pasan a una función para que la función los use. Los argumentos son los datos reales que se pasan a una función cuando se invoca:

// 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);
Rejaul Karim
fuente
0

Lo pensé detenidamente y me di cuenta de que mi respuesta anterior era incorrecta. Aquí hay una definición mucho mejor

{ Imagina un cartón de huevos: un paquete de salchichas: y una criada } Estos representan elementos de una Función necesaria para la preparación llamada: (use cualquier nombre: Digamos que cocinar es el nombre de mi función).

Una criada es un método.

(Debe __call_ o pedir este método para preparar el desayuno) (El acto de preparar el desayuno es una función llamada Cooking ) _

Los huevos y las salchichas son parámetros:

(porque la cantidad de huevos y la cantidad de salchichas que quiere comer es __variable_.) _

Su decisión es un argumento:

Representa el __Valor_ del número elegido de huevos y / o salchichas que está cocinando ._

{ Mnemotécnico }

_ "Cuando llamas a la sirvienta y le pides que prepare el desayuno, ella te discute sobre cuántos huevos y salchichas debes comer. Le preocupa tu colesterol" __

(Los argumentos, entonces, son los valores para la combinación de Parámetros que ha declarado y decidido pasar a su Función)

revs marcusjetson
fuente