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

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 progtwigdor de C #, pero también me pregunto si las personas usan términos diferentes en diferentes idiomas.

Para que conste, soy autodidacta sin formación en Informática. (No me pidas que lea Code Complete porque estoy solicitando esto para el beneficio de otras personas que todavía no tienen una copia del maravilloso libro de Steve McConnell ).

Resumen

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

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

public void MyMethod(string myParam) { } ... string myArg1 = "this is my argument"; myClass.MyMethod(myArg1); 

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

Argumento es el valor real de esta variable que pasa a funcionar.

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 la función / procedimiento / método y un argumento es el valor real proporcionado en el tiempo de ejecución y / o el sitio de la llamada para el parámetro.

El artículo de Wikipedia también afirma que los dos términos se usan a menudo 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 apropiadamente como los valores reales o las referencias asignadas a las variables de parámetro cuando se llama a la subrutina en el tiempo de ejecución.

Dada la siguiente función de ejemplo en C que agrega dos enteros, x y y serían sus parámetros:

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

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

 int result = add(123, 456); 

Además, algunas especificaciones de lenguaje (o documentación formal) eligen usar un parámetro o argumento exclusivamente y usan adjetivos como formal y real en lugar de 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 argumentos de llamada de función como argumentos reales . Para ver un ejemplo, consulte ” Argumentos formales y reales ” en la Referencia del lenguaje de Visual C ++ .

Un parámetro es algo que debe cumplimentar cuando llama a una función. Lo que pones en él es el argumento.

Simplemente establecido: el argumento va dentro del parámetro, un argumento es el valor del parámetro.

Un poco más de información en: http://en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments

Sencillo:

  • P ARÁMETRO → P LACEHOLDER (Esto significa que un marcador de posición pertenece a la función nombrar y ser utilizado en el cuerpo de la función)
  • A RGUMENT → A CTUAL VALUE (Esto significa un valor real que pasa la función que llama)

El uso de los términos parámetros y argumentos se ha utilizado de forma incorrecta entre progtwigdores 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 se le pasan al método.

MCSD Cerfification Toolkit (Examen 70-483) Progtwigción en C # , 1ª 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); 

En la edición, a menudo me distraigo de cómo la gente olvida: los lenguajes de estructura se basan en los 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. Discutes tu opinión: consideras un argumento.

Diferencia principal

El rol temático de un argumento es agente. El rol temático de parámetro es receptor.

Interacciones

Piense en el argumento como la parte masculina, haciendo que el parámetro sea 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é [] tendrá este parámetro []?

(B) Hablando de una invocación:

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

Respuestas

(UN)

  1. on / in / against / con este parámetro
  2. argumento (s) … tomar

(SEGUNDO)

  1. y cuales son algunos ejemplos de argumentos
  2. argumento (s) … usado en / en / contra / con

Superposiciones

Como se puede imaginar, después de responder: ¡en el 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 brinda argumentos de ejemplo.

    • Por lo general, si alguien quiere información de argumento, quiere saber qué valor le pasaste a una función o su (s) parámetro (s).

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

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

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 para dos o más funciones).

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

O puede ser incluso más simple de recordar así, en el caso de los argumentos opcionales para un método:

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

parameter es el parámetro, su valor, "argument" es el argumento 🙂

Digamos que eres una aerolínea. Usted construye un avión. Usted instala asientos en él. Luego, llenas el avión con pasajeros y lo envías a algún lado. Los pasajeros (o mejor dicho, alguna versión alterada espaciotemporalmente) desembarcan. Al día siguiente, volverás a usar 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.

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

Parámetros y argumentos

Todos los términos diferentes 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 statement de función y se utilizan en el cuerpo de la definición de 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 utiliza para completar un parámetro formal. Cuando anota 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 de función, los argumentos se conectan para los parámetros formales.
  3. Los términos llamada por valor y llamada por referencia hacen referencia al mecanismo que se utiliza en el proceso de inserción. En el método call-by-value, 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 al valor del argumento correspondiente. En el mecanismo de llamada por referencia, el argumento es una variable y se usa 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 realmente en la variable de argumento.

Fuente: C ++ absoluto, Walter Savitch

Es decir,

enter image description here

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

¡Sí! Los parámetros y argumentos tienen diferentes significados, que se pueden explicar fácilmente de la siguiente manera:

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

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

O incluso más simple …

Argumentos en!

Parámetros fuera!

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 a menudo se usan con funciones. El valor pasado con la statement de llamada 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 (llamada 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, num1 y num2 son parámetros formales y a y b son argumentos reales.

Los tutoriales Java de Oracle definen esta distinción de la siguiente manera: “Parámetros se refiere a la lista de variables en una statement de método. Los argumentos son los valores reales que se pasan cuando se invoca el método. Cuando invocas un método, los argumentos utilizados deben coincidir con los parámetros de la statement 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

Ok, seamos realistas: para todos los efectos, son prácticamente lo mismo … bien, pero para los pedantes podría haber una diferencia técnica.

Un “parámetro” es una cosa muy general, pero un argumento es algo muy específico. Genial, gracias, así que es realmente útil. hmmm: tal vez un ejemplo está en orden.

Una explicación simple

Tomemos un ejemplo: tengo una máquina. Así es como funciona: pongo cosas en la máquina en un extremo, y en el otro extremo, sale un nuevo “producto” de la máquina. ¿Qué entra en esta máquina? Cualquier cosa. ¿Qué sale? Bueno, una versión refinada de lo que entra. Por ejemplo, puedo poner harina y azúcar en un extremo de esta máquina, y de la otra viene una torta. entiendes la idea

Ahora diferentes máquinas tienen diferentes reglas. Una máquina en particular solo puede aceptar gasolina (sin plomo) como entrada. Se puede decir que estas máquinas aceptan parámetros de tipo: gasolina.

Un ejemplo

¿Qué es un argumento? Un argumento es un ejemplo particular y específico de lo que se pone en la máquina. Supongamos que mi máquina toma a las personas como entrada (las personas serían el parámetro de esta máquina ) y supongamos que esta máquina convierte a esas personas en personas que no son malas personas (¡qué máquina tan maravillosa!). ¿Qué es una discusión? El argumento será la persona particular que realmente se pone en la máquina. por ejemplo, si se coloca a George Bush en la máquina, entonces el argumento sería George Bush. Si Kim Kardiashian estuviera allí, entonces ella también sería una discusión. Entonces, el parámetro sería la gente como un concepto abstracto, pero el argumento siempre sería una persona particular con un nombre particular que se pone en la máquina.

Un ejemplo más

por ejemplo, un método (es decir, una máquina particular que convierte entradas en salidas) puede aceptar un número entero como parámetro. Supongamos que el número entero 5 “pasa a” la función (es decir, supongamos que coloca el número 5 en la máquina). En este caso, el entero “5” sería el argumento, y el “parámetro” aceptado por este método sería de tipo entero.

Esa es la diferencia. Sencillo.

Espero que esto ayude. Si está confundido, simplemente haga un comentario y lo intentaré y lo arreglaré.

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

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

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

Cuando creamos el método (función) en Java, el método de esta manera …

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

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

Según el libro de José Alabahari “C # in a Nutshell” (C # 7.0, p49):

 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
  • argument = parámetro real

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

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

Argumento es el valor real de esta variable que pasa a funcionar. enter image description here

Los parámetros son las variables recibidas por una función. Por lo tanto, son visibles en la statement 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 llamada de función. Son solo valores sin su tipo de datos

Los parámetros formales para una función se enumeran en la statement de función y se utilizan en el cuerpo de la definición de 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 utiliza para completar un parámetro formal. Cuando anota 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 de función, los argumentos se conectan para los parámetros formales.

Los términos llamada por valor y llamada por referencia hacen referencia al mecanismo que se utiliza en el proceso de inserción. En el método call-by-value, 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 al valor del argumento correspondiente. En el mecanismo de llamada por referencia, el argumento es una variable y se usa 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 realmente en la variable de argumento.

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

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

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

Una mucama 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 Cocinar ) _

Los huevos y las salchichas son parámetros:

(porque la cantidad de huevos y el número de salchichas que desea comer es __variable_.) _

Tu decisión es un argumento:

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

{ Mnemónico }

_ “Cuando llamas a la doncella y le pides que prepare el desayuno, ella __argues_ contigo sobre cuántos huevos y salchichas debes comer. Le preocupa tu colesterol” __

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

Se explica perfectamente en Parámetro (progtwigción de computadora) – Wikipedia

En general, un parámetro es un tipo, y un argumento es una instancia.

En la definición de función f(x) = x*x la variable x es un parámetro; en la llamada de función f(2) el valor “ 2 es el argumento de la función.

Y parámetro – Wikipedia

En la progtwigción de computadoras , dos nociones de parámetros se usan comúnmente, y se conocen como parámetros y argumentos, o más formalmente, como un parámetro formal y un parámetro real .

Por ejemplo, en la definición de una función como

y = f(x) = x + 2,

x es el parámetro formal (el parámetro ) de la función definida.

Cuando la función se evalúa para un valor dado, como en

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

es el parámetro real (el argumento ) para la evaluación por la función definida; es un valor dado (valor real) que se sustituye por el parámetro formal de la función definida. (En el uso ocasional, los términos parámetro y argumento podrían intercambiarse inadvertidamente y, por lo tanto, utilizarse incorrectamente).

Necesita volver a lo básico. Ambos constructores y métodos tienen parámetros y argumentos. Muchas personas incluso llaman a los constructores tipos especiales de métodos. Así es como se usan los parámetros declarados de un método:

  type name(parameters){ //body of method } 

Y así es como se declaran los parámetros de un constructor:

 classname(parameters){ //body } 

Ahora veamos un código de ejemplo con el que calculamos el volumen de un cubo:

 public class cuboid { double width; double height; double depth; cuboid(double w,double h,double d) { //Here w,h and d are parameters of constructor this.width=w; this.height=h; this.depth=d; } public double volume() { double v; v=width*height*depth; return v; } public static void main(String args[]){ cuboid c1=new cuboid(10,20,30); //Here 10,20 and 30 are arguments of a constructor double vol; vol=c1.volume(); System.out.println("Volume is:"+vol); } } 

Entonces ahora entiendes que cuando llamamos a un constructor / método sobre un objeto en algún lugar posterior del código, pasamos los argumentos y no los parámetros. Los parámetros de presencia se limitan al lugar donde se define el objeto lógico, pero los argumentos entran en juego cuando un examen físico objeto realmente se crea.