Qual è la differenza tra un argomento e un parametro?


718

Quando parlo verbalmente di metodi, non sono mai sicuro di usare la parola argomento o parametro o qualcos'altro. Ad ogni modo le altre persone sanno cosa intendo, ma cosa è corretto e qual è la storia dei termini?

Sono un programmatore C #, ma mi chiedo anche se le persone usano termini diversi in lingue diverse.

Per la cronaca, sono autodidatta senza esperienza in Informatica. (Per favore, non dirmi di leggere Code Complete perché lo sto chiedendo per il beneficio di altre persone che non hanno già una copia del meraviglioso libro di Steve McConnell .)

Sommario

Il consenso generale sembra essere che sia OK usare questi termini in modo intercambiabile in un ambiente di squadra. Tranne forse quando stai definendo la terminologia precisa; allora si può anche usare " formale argomento / parametro" e " reale argomento / parametro" per disambiguare.


9
Li uso in modo intercambiabile .. nessuno mi ha ancora riso .. "questa funzione ha 4 argomenti ... questa funzione accetta 4 parametri". sembra lo stesso.
Gishu,

54
Va bene usarli in modo intercambiabile, tranne quando si sta cercando di descrivere come funzionano i parametri e come vengono passati gli argomenti, ecc. A quel punto la terminologia precisa (che a volte può essere una seccatura da esprimere) è utile.
Jon Skeet,

2
Esistono almeno due versioni non chiuse e indipendenti dalla lingua di questa domanda: stackoverflow.com/questions/3176310/… e stackoverflow.com/questions/427653/arguments-or-parameters . C'è anche un'altra versione C # di questa domanda; Ho richiesto una fusione.
apre il

1
Sono contento che tu abbia menzionato Steve McConnell. Ho avuto modo di conoscere un altro ragazzo che conosce l'arte del software insieme a Robert C. Martin.
RBT

3
Penso che indipendentemente dal fatto che tu sia in un ambiente formale o meno, dovresti cercare di usare i termini corretti. Penso che sia piuttosto semplice. Quando chiami un metodo, passi argomenti. Quando si definisce il metodo, si definiscono i parametri che prenderanno gli argomenti dalla chiamata metodo / funzione. argomento: una variabile indipendente associata a una funzione e che determina il valore della funzione. parametro - un limite o limite che definisce l'ambito di un particolare processo o attività.
jsquaredz,

Risposte:


906

Un parametro è una variabile nella definizione di un metodo. Quando viene chiamato un metodo, gli argomenti sono i dati passati nei parametri del metodo.

public void MyMethod(string myParam) { }

...

string myArg1 = "this is my argument";
myClass.MyMethod(myArg1);

196
Un mnemonico allettante che può aiutare: gli argomenti sono reali. ;)
soft

8
La risposta menziona che "Il parametro è una variabile nella definizione di un metodo" ma potrebbe essere meglio dire "dichiarazione del metodo" [se qualcuno sta facendo una distinzione tra "dichiarazione" e "definizione"]
nandan

110
"Definisci i parametri e fai argomenti."
Greg M. Krsak,

5
parametro => quando definiamo la funzione, argomento => quando chiamiamo quel metodo. (Corretto errato me se vengo.)
Prageeth godage

7
I parametri sono i nomi. Gli argomenti sono i valori.
Aziz Alto,

327

Il parametro è variabile nella dichiarazione di funzione.

L'argomento è il valore effettivo di questa variabile che viene passato alla funzione.


7
Queste lingue di solito si riferiscono all'elenco argomenti / parametri passato a un metodo come *argso ARGVno *params:-)
karatedog

6
*paramssarebbe il nome di una variabile che dovrebbe contenere i nomi dei parametri (forse usato per l'introspezione).
trss,

6
@karatedog E questo è completamente in linea con questa distinzione, in realtà. I parametri sono nominati al momento della dichiarazione, gli argomenti sono noti solo al momento della chiamata. La sintassi *argsdichiara un parametro il args cui valore è un elenco (nome e tipo noti al momento della dichiarazione) degli argomenti (il cui numero è noto solo al momento della chiamata).
Emil Lundberg,

72

C'è già una voce di Wikipedia sull'argomento (vedi parametro ) che definisce e distingue i termini parametro e argomento . In breve, un parametro fa parte della firma funzione / procedura / metodo e un argomento è il valore effettivo fornito in fase di esecuzione e / o sito di chiamata per il parametro.

L'articolo di Wikipedia afferma inoltre che i due termini sono spesso usati come sinonimi (soprattutto quando si ragiona in modo informale sul codice):

Sebbene i parametri vengano comunemente definiti argomenti, gli argomenti vengono più propriamente considerati come i valori o i riferimenti effettivi assegnati alle variabili dei parametri quando la subroutine viene chiamata in fase di esecuzione.

Dato il seguente esempio di funzione in C che aggiunge due numeri interi, xe ysarebbe indicato come i suoi parametri:

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

In un sito di chiamata che utilizza add, come nell'esempio mostrato di seguito, 123 e 456 verrebbero indicati come argomenti della chiamata.

int result = add(123, 456);

Inoltre, alcune specifiche del linguaggio (o documentazione formale) scelgono di usare esclusivamente parametri o argomenti e usano aggettivi come formali e reali invece di chiarire le ambiguità tra i due casi. Ad esempio, la documentazione C / C ++ spesso fa riferimento a parametri di funzione come argomenti formali e argomenti di chiamata di funzione come argomenti effettivi . Per un esempio, vedere " Argomenti formali e reali " nella Guida di riferimento di Visual C ++ .


+1 per spiegare come sono comunemente usati e le loro definizioni formali, e anche per menzionare l'uso comune di argomenti / parametri "formali" e "reali" per distinguerli senza ambiguità.
Lumaca meccanica

Questa è una grande spiegazione, ma è quasi impossibile da capire rispetto alla semplicità del concetto. Un parametro è ciò che viene accettato, un argomento è ciò che viene chiamato. È una strada a senso unico.
ihodonald,

69

Semplice:

  • P ARAMETER → P LACEHOLDER (Ciò significa che un segnaposto appartiene alla denominazione della funzione e deve essere utilizzato nel corpo della funzione)
  • A RGUMENT → A CTUAL VALUE (Ciò significa un valore effettivo che viene passato dalla funzione che chiama)

3
Simpatico gancio di memoria
Tanckom,


29

Il parametro è variabile nella dichiarazione di funzione.

L'argomento è il valore effettivo di questa variabile che viene passato alla funzione. inserisci qui la descrizione dell'immagine


16

L'uso dei termini parametri e argomenti è stato usato in qualche modo tra programmatori e persino autori. Quando si ha a che fare con i metodi, il termine parametro viene utilizzato per identificare i segnaposto nella firma del metodo, mentre gli argomenti termine sono i valori effettivi passati al metodo.

MCSD Cerfification Toolkit (Exam 70-483) Programmazione in C # , 1a edizione, Wrox, 2013

Scenario del caso reale

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

10

Nel montaggio, sono spesso rimandato a come la gente dimentica: i linguaggi della struttura sono basati sui linguaggi naturali.

In inglese

Un "parametro" è un segnaposto. Hanno impostato il formato di risposta, nella lingua parlata. Per definizione, è parte della chiamata, limitando la risposta.

Un "argomento" è una posizione che viene presa in considerazione. Discuti la tua opinione: consideri una discussione.

Differenza principale

Il ruolo tematico di un argomento è l'agente. Il ruolo tematico del parametro è destinatario.

interazioni

Pensa all'argomento come alla parte maschile, rendendo il parametro la parte femminile. L'argomento entra nel parametro.

uso

Un parametro viene solitamente utilizzato nelle definizioni. Un argomento viene solitamente utilizzato nelle invocazioni.

Domande

Termina la frase per renderla meno dissonante.

(A) Parlando di una definizione:

  1. Quale argomento verrà utilizzato []?
  2. Quale [] sarà questo parametro []?

(B) A proposito di un'invocazione:

  1. Quale parametro utilizzerai, []?
  2. Quale [] sarà [] questo parametro?

risposte

(UN)

  1. on / in / against / con questo parametro
  2. argomento (i) ... prendere

(B)

  1. e quali sono alcuni esempi di argomenti
  2. argomento (i) ... usato su / in / contro / con

Le sovrapposizioni

Come puoi immaginare, dopo aver risposto: nella lingua parlata, queste parole a volte producono risposte identiche!

Quindi, di regola:

  • Di solito se qualcuno vuole informazioni sui parametri, vuole saperne di più sul tipo, sul nome della variabile, ecc. Potrebbero confondersi se si danno solo argomenti di esempio.

    • Di solito se qualcuno vuole informazioni sull'argomento, vuole sapere quale valore hai passato a una funzione o ai suoi parametri.

8

Questo esempio potrebbe essere d'aiuto.

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

8

Ricordare sempre che: - Gli argomenti vengono passati mentre i parametri vengono ricevuti.


8

I parametri di una funzione / metodo descrivono i valori che utilizza per calcolare il suo risultato.

Gli argomenti di una funzione sono i valori assegnati a questi parametri durante un particolare richiamo della funzione / metodo.


7

O potrebbe essere ancora più semplice da ricordare in questo modo, nel caso di argomenti opzionali per un metodo:

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

}

parameterè il parametro, il suo valore, "argument"è l'argomento :)


7

Diciamo che sei una compagnia aerea. Costruisci un aereo. Vi installate posti. Quindi, riempi l'aereo di passeggeri e lo mandi da qualche parte. I passeggeri (o meglio, qualche versione spazialmente-temporalmente modificata) sbarcano. Il giorno successivo, riutilizzerai lo stesso aereo e gli stessi posti, ma questa volta con passeggeri diversi.

L'aereo è la tua funzione.

I parametri sono i posti.

Gli argomenti sono i passeggeri che vanno in quei posti.


7

Parametri e argomenti

Tutti i diversi termini che hanno a che fare con parametri e argomenti possono essere fonte di confusione. Tuttavia, se tieni a mente alcuni semplici punti, sarai in grado di gestire facilmente questi termini.

  1. I parametri formali per una funzione sono elencati nella dichiarazione della funzione e sono utilizzati nel corpo della definizione della funzione. Un parametro formale (di qualsiasi tipo) è un tipo di spazio vuoto o segnaposto che viene riempito con qualcosa quando viene chiamata la funzione.
  2. Un argomento è qualcosa che viene utilizzato per compilare un parametro formale. Quando si annota una chiamata di funzione, gli argomenti sono elencati tra parentesi dopo il nome della funzione. Quando viene eseguita la chiamata di funzione, vengono inseriti gli argomenti per i parametri formali.
  3. I termini call-by-value e call-by-reference si riferiscono al meccanismo utilizzato nel processo di connessione. Nel metodo call-by-value viene utilizzato solo il valore dell'argomento. In questo meccanismo di chiamata per valore, il parametro formale è una variabile locale inizializzata sul valore dell'argomento corrispondente. Nel meccanismo di chiamata per riferimento l'argomento è una variabile e viene utilizzata l'intera variabile. Nel meccanismo di chiamata per riferimento, la variabile argomento viene sostituita dal parametro formale in modo che qualsiasi modifica apportata al parametro formale venga effettivamente apportata alla variabile argomento.

Fonte: Absolute C ++, Walter Savitch

Questo è,

inserisci qui la descrizione dell'immagine


6

I termini sono in qualche modo intercambiabili. La distinzione descritta in altre risposte è più propriamente espressa con i termini parametro formale per il nome utilizzato all'interno del corpo della funzione e parametro per il valore fornito nel sito di chiamata ( sono comuni anche argomento formale e argomento ).

Si noti inoltre che, in matematica, il termine argomento è molto più comune e il parametro di solito significa qualcosa di completamente diverso (sebbene il parametro in un'equazione parametrica sia essenzialmente l' argomento di due o più funzioni).


Ma poi anche il termine argomento è sovraccarico, almeno in analisi complesse.
Lumaca meccanica

1
Ho un parametro con l'affermazione che sono intercambiabili. ;)
Wildcard il

5

Un argomento è un'istanza di un parametro.


4
È la spiegazione che mi è stata data da un altro programmatore molto tempo fa e ho pensato che fosse molto chiara e concisa. L'ho pubblicato qui per questo motivo.
Paul Richter,

4

Sì! Parametri e argomenti hanno significati diversi, che possono essere facilmente spiegati come segue:

I parametri di funzione sono i nomi elencati nella definizione di funzione.

Gli argomenti di funzione sono i valori reali passati (e ricevuti da) alla funzione.


4

Spiegazioni semplici senza codice

Un "parametro" è una cosa molto generica, ampia, ma un "argomento: è una cosa molto specifica, concreta, che è meglio illustrata attraverso esempi quotidiani:

Esempio 1: Distributori automatici: il parametro è denaro, mentre l'argomento è $ 2,00

La maggior parte delle macchine accetta un input e restituisce un output. Ad esempio un distributore automatico accetta come input: denaro e restituisce: bevande gassate come output. In quel caso particolare, accetta come parametro: denaro.

Qual è allora l'argomento? Bene, se metto $ 2,00 nella macchina, allora l'argomento è: $ 2,00 - è l'input molto specifico usato.

Esempio 2: Automobili - La benzina è il parametro

Consideriamo un'auto: accettano la benzina (benzina senza piombo) come input. Si può dire che queste macchine accettano parametri di tipo: benzina. L'argomento sarebbe l'input esatto e concreto che ho messo nella mia macchina. ad esempio, nel mio caso, l'argomento sarebbe: 40 litri di benzina / benzina senza piombo.

Esempio 3 - Elaborazione su argomenti

Un argomento è un esempio particolare e specifico di un input. Supponiamo che la mia macchina prenda una persona come input e la trasformi in qualcuno che non è un bugiardo.

Cos'è allora una discussione? L'argomento sarà la persona particolare che viene effettivamente inserita nella macchina. ad esempio, se Colin Powell viene inserito nella macchina, l'argomento sarebbe Colin Powell.

Quindi il parametro sarebbe una persona come concetto astratto, ma l'argomento sarebbe sempre una persona in particolare con un nome particolare che viene inserito nella macchina. L'argomento è specifico e concreto.

Questa è la differenza Semplice.

Confuso?

Pubblica un commento e sistemerò la spiegazione.



3

Entrambi non hanno molta differenza nell'uso in C, entrambi i termini sono usati nella pratica. Principalmente gli argomenti sono spesso usati con le funzioni. Il valore passato con l'istruzione chiamante funzione è chiamato argomento, e il parametro sarebbe la variabile che copia il valore nella definizione della funzione (chiamato come parametro formale).

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

Nel codice sopra num1e num2sono parametri formali ae bsono argomenti reali.


3

Le esercitazioni Java di Oracle definiscono così questa distinzione: "I parametri si riferiscono all'elenco delle variabili in una dichiarazione di metodo. Gli argomenti sono i valori effettivi che vengono passati quando viene invocato il metodo. Quando si invoca un metodo, gli argomenti utilizzati devono corrispondere ai parametri della dichiarazione nel tipo e nell'ordine. "

Una discussione più dettagliata di parametri e argomenti: https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html


3

Logicamente parlando, in realtà stiamo parlando della stessa cosa. Ma penso che una semplice metafora sarebbe utile per risolvere questo dilemma.

Se le metafore possono essere chiamate vari punti di connessione, possiamo equipararle a punti di connessione su una parete. In questo caso possiamo considerare i parametri e gli argomenti come segue;

I parametri sono le prese del plug-point che possono assumere varie forme diverse. Ma solo alcuni tipi di spine si adattano a loro.
Gli argomenti saranno le prese effettive che verrebbero inserite nei punti / prese per attivare determinate apparecchiature.


3

Il parametro è una variabile nella definizione di una funzione L'
argomento è un valore di parametro

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

In generale, i termini parametro e argomento sono usati in modo intercambiabile per indicare informazioni che vengono passate in una funzione.

Tuttavia, dal punto di vista di una funzione:

  • Un parametro è la variabile elencata tra parentesi nella definizione della funzione.
  • Un argomento è il valore che viene inviato alla funzione quando viene chiamato.

2

Quando creiamo il metodo (funzione) in Java, il metodo in questo modo ...

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

Tra parentesi, questi sono i parametri e quando chiamiamo il metodo (funzione) passiamo il valore di questo parametro, che sono chiamati argomenti.


2

Secondo il libro di 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
}

In alcune lingue umane (afaik italiano, russo) i sinonimi sono ampiamente utilizzati per questi termini.

  • parametro = parametro formale
  • argomento = parametro effettivo

Nella mia università i professori usano entrambi i tipi di nomi.


0

I parametri sono le variabili ricevute da una funzione, quindi sono visibili nella dichiarazione della funzione e contengono il nome della variabile con il loro tipo di dati. Gli argomenti sono valori effettivi che vengono passati a un'altra funzione. ecco perché possiamo vederli nella chiamata di funzione. Sono solo valori senza il loro tipo di dati


0

I parametri formali per una funzione sono elencati nella dichiarazione della funzione e sono utilizzati nel corpo della definizione della funzione. Un formale parametro (di qualsiasi tipo) è un tipo di spazio vuoto o segnaposto che viene riempito con qualcosa quando viene chiamata la funzione.

Un argomento è qualcosa che viene utilizzato per compilare un parametro formale. Quando si annota una chiamata di funzione, gli argomenti sono elencati tra parentesi dopo il nome della funzione. Quando viene eseguita la chiamata di funzione, vengono inseriti gli argomenti per i parametri formali.

I termini call-by-value e call-by-reference si riferiscono al meccanismo utilizzato nel processo di connessione. Nel metodo call-by-value viene utilizzato solo il valore dell'argomento. In questo meccanismo di chiamata per valore, il parametro formale è una variabile locale inizializzata sul valore dell'argomento corrispondente. Nel meccanismo di chiamata per riferimento l'argomento è una variabile e viene utilizzata l'intera variabile. Nel meccanismo di chiamata per riferimento, la variabile argomento viene sostituita dal parametro formale in modo che qualsiasi modifica apportata al parametro formale venga effettivamente apportata alla variabile argomento.


0

I parametri sono variabili utilizzate per archiviare i dati passati in una funzione che la funzione può utilizzare. Gli argomenti sono i dati effettivi passati a una funzione quando viene invocato:

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

0

Ci ho pensato e ho capito che la mia risposta precedente era sbagliata. Ecco una definizione molto migliore

{ Immagina un cartone di uova: un pacchetto di maglie di salsiccia: e una cameriera } Questi rappresentano gli elementi di una funzione necessaria per la preparazione chiamata: (usa qualsiasi nome: diciamo che cucinare è il nome della mia funzione).

Una cameriera è un metodo.

(È necessario __call_ o chiedere questo metodo per preparare la colazione) (L'atto di preparare la colazione è una funzione chiamata Cooking ) _

Le uova e le salsicce sono parametri:

(perché il numero di uova e il numero di salsicce che vuoi mangiare è __variabile_.) _

La tua decisione è un argomento:

Rappresenta il __Valore_ del numero scelto di uova e / o salsicce che stai cucinando ._

{ Mnemonico }

_ "Quando chiami la cameriera e le chiedi di fare colazione, __argues_ con te su quante uova e salsicce dovresti mangiare. È preoccupata per il tuo colesterolo" __

(Gli argomenti, quindi, sono i valori per la combinazione di Parametri che hai dichiarato e che hai deciso di passare alla tua Funzione)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.