web-dev-qa-db-de.com

Was ist der Unterschied zwischen einem Argument und einem Parameter?

Wenn ich verbal über Methoden spreche, bin ich nie sicher, ob ich das Wort argument oder parameter oder etwas anderes verwenden soll. So oder so wissen die anderen Leute, was ich meine, aber was ist richtig und wie ist die Geschichte der Begriffe?

Ich bin ein C # -Programmierer, aber ich frage mich auch, ob die Leute unterschiedliche Begriffe in verschiedenen Sprachen verwenden.

Für das Protokoll bin ich Autodidakt ohne einen Informatik-Hintergrund. (Bitte sagen Sie mir nicht, Code Complete zu lesen, weil ich dies zum Wohle anderer Leute fordere, die noch keine Kopie von Steve McConnell 's wunderbarem Buch haben.)

Zusammenfassung

Der allgemeine Konsens scheint zu sein, dass es in Ordnung ist, diese Begriffe in einer Teamumgebung austauschbar zu verwenden. Außer vielleicht, wenn Sie die genaue Terminologie definieren. Dann können Sie auch "formal Argument/Parameter" und "actual Argument/Parameter" verwenden, um die Begriffsbestimmung vorzunehmen.

559
rohancragg

Ein Parameter ist eine Variable in einer Methodendefinition. Wenn eine Methode aufgerufen wird, sind die Argumente die Daten, die Sie an die Parameter der Methode übergeben.

public void MyMethod(string myParam) { }

...

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

Parameter ist in der Funktionsdeklaration variabel.

Argument ist der tatsächliche Wert dieser Variablen, der an function übergeben wird.

266
Rinat Abdullin

Es gibt bereits einen Wikipedia-Eintrag zum Thema (siehe Parameter ), der die Begriffe parameter und argument definiert und unterscheidet. Kurz gesagt, ein Parameter ist Teil der Signatur der Funktion/Prozedur/Methode, und ein Argument ist der tatsächliche Wert, der zur Laufzeit und/oder die Aufrufstelle für den Parameter angegeben wird. 

In dem Wikipedia-Artikel heißt es außerdem, dass die beiden Begriffe häufig synonym verwendet werden (insbesondere bei informellen Argumenten über Code):

Obwohl Parameter auch häufig sind als Argumente bezeichnet, Argumente sind besser als .__ gedacht. Istwerte oder Referenzen zugewiesen zu den Parametervariablen, wenn die Subroutine wird zur Laufzeit aufgerufen.

In der folgenden Beispielfunktion in C, die zwei Ganzzahlen hinzufügt, werden x und y als Parameter bezeichnet:

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

An einer Aufrufstelle mit add, wie im Beispiel unten gezeigt, werden 123 und 456 als arguments des Aufrufs bezeichnet.

int result = add(123, 456);

Einige Sprachspezifikationen (oder formale Dokumentation) verwenden außerdem ausschließlich parameter oder argument und verwenden Adjektive wie formal und actual, um zwischen den beiden Fällen zu unterscheiden. Beispielsweise bezieht sich die C/C++ - Dokumentation häufig auf die Funktion parameters als formale Argumente und den Funktionsaufruf arguments als actual-Argumente. Ein Beispiel finden Sie unter " Formale und tatsächliche Argumente " im Visual C++ - Referenzhandbuch

66
Atif Aziz

Einfach:

  • PARAMETER →PLACEHOLDER (Dies bedeutet, dass ein Platzhalter zur Funktionsbenennung gehört und im Funktionskörper verwendet wird.)
  • ARGUMENT →ACTUAL VALUE (Dies ist ein aktueller Wert, der vom Funktionsaufruf übergeben wird)
40
Duc Filan

Ein Parameter muss beim Aufruf einer Funktion angegeben werden. Was Sie da hineinbringen, ist das Argument. 

Einfach gesetzt: Das Argument geht in den Parameter, ein Argument ist der Wert des Parameters.

Weitere Informationen zu: http://en.wikipedia.org/wiki/Parameter_(computer_science)#Parameters_and_arguments

30
Carra

Die Verwendung der Begriffe Parameter und Argumente wurde von Programmierern und sogar Autoren etwas missbraucht. Beim Umgang mit Methoden werden mit dem Begriff parameter die Platzhalter in der Methodensignatur identifiziert, während der Begriff arguments die tatsächlichen Werte ist, die Sie an die Methode übergeben.

MCSD Cerfification Toolkit (Exam 70-483) Programmierung in C #, 1. Auflage, Wrox, 2013

Fallbeispiel aus der realen Welt

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

Beim Editieren schäme ich mich oft darüber, wie die Leute vergessen: Struktursprachen basieren auf natürlichen Sprachen. 

Auf Englisch

Ein "Parameter" ist ein Platzhalter. Sie legen das Antwortformat in gesprochener Sprache fest. Per Definition ist es Teilnehmer des Anrufs, was die Antwort einschränkt.

Ein "Argument" ist eine Position, die betrachtet wird. Sie argumentieren Ihre Meinung: Sie denken über ein Argument nach. 

Hauptunterschied

Die thematische Rolle eines Arguments ist Agent. Die thematische Rolle des Parameters ist der Empfänger. 

Wechselwirkungen

Stellen Sie sich das Argument als männlichen Teil vor und machen Sie den Parameter zum weiblichen Teil. Das Argument geht in den Parameter ein. 

Verwendungszweck

Ein Parameter ist normalerweise, der in Definitionen verwendet wird. Ein Argument ist normalerweise, das in Aufrufen verwendet wird. 

Fragen

Beende den Satz, um ihn weniger dissonant zu machen.

(A) Apropos Definition:

  1. Welches Argument wird verwendet []?
  2. Was wird dieser Parameter []?

(B) Apropos Anruf:

  1. Welchen Parameter verwenden Sie, []?
  2. Was [] wird dieser Parameter sein? 

Antworten

(EIN) 

  1. auf/in/gegen/mit diesem Parameter
  2. argument (e) ... nehmen 

(B) 

  1. und was sind einige beispiele
  2. argument (e) ... verwendet auf/in/gegen/mit

Überlappungen

Wie Sie sich vorstellen können, nachdem Sie geantwortet haben: In gesprochenen Sprachen erzeugen diese Wörter manchmal identische Antworten! 

Also in der Regel: 

  • Wenn jemand Parameterinformationen wünscht, möchte er normalerweise mehr über den Typ, den Variablennamen usw. erfahren. Sie können verwirrt werden, wenn Sie nur Beispielargumente angeben. 

    • Wenn jemand Argumentinformationen wünscht, möchte er normalerweise wissen, welchen Wert Sie an eine Funktion oder deren Parameter übergeben haben.
9
Wolfpack'08

Parameter ist in der Funktionsdeklaration variabel.

Argument ist der tatsächliche Wert dieser Variablen, die an die Funktion ..__ übergeben wird. /.  enter image description here

9
user6864832

Die Parameter einer Funktion/Methode beschreiben Ihnen die Werte, die zur Berechnung des Ergebnisses verwendet werden.

Die Argumente von a sind die Werte, die diesen Parametern während eines bestimmten Aufrufs der Funktion/Methode zugewiesen werden.

7
Johan

Oder es ist noch einfacher, sich bei optionalen Argumenten für eine Methode wie folgt zu erinnern:

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

}

parameter ist der Parameter, sein Wert, "argument" ist das Argument :)

7
nawfal

Parameter und Argumente

Alle verschiedenen Begriffe, die mit Parametern und Argumenten zu tun haben kann verwirrend sein. Wenn Sie jedoch einige einfache Punkte beachten, wird Sie können diese Bedingungen problemlos handhaben.

  1. Die formal-Parameter einer Funktion werden in der Funktionsdeklaration aufgeführt und im Rumpf der Funktionsdefinition verwendet. EIN Formalparameter (von beliebiger Art) ist eine Art Leerzeichen oder Platzhalter, der wird mit etwas gefüllt, wenn die Funktion aufgerufen wird.
  2. Ein argument ist etwas, das verwendet wird, um einen Formalparameter einzugeben . Wenn Sie einen Funktionsaufruf aufschreiben, werden die Argumente in .__ aufgeführt. Klammern nach dem Funktionsnamen. Wenn der Funktionsaufruf .__ ist. ausgeführt, werden die Argumente für die Formalparameter eingefügt.
  3. Die Begriffe call-by-value und call-by-reference beziehen sich auf den Mechanismus das wird beim Einstecken verwendet. In der Call-By-Value-Methode Es wird nur der Wert des Arguments verwendet. In diesem call-by-value Mechanismus ist der formale Parameter eine lokale Variable, die .__ ist. initialisiert auf den Wert des entsprechenden Arguments. In dem Call-by-Reference-Mechanismus Das Argument ist eine Variable und die Die gesamte Variable wird verwendet. Im Call-by-Reference-Mechanismus wird der Die Argumentvariable wird für den Formalparameter verwendet, sodass Jede Änderung, die an dem Formalparameter vorgenommen wird, wird tatsächlich an .__ vorgenommen. die Argumentvariable.

Quelle: Absolutes C++, Walter Savitch

Das ist,

 enter image description here

6
snr

Nehmen wir an, Sie sind eine Fluggesellschaft. Du baust ein Flugzeug. Sie installieren Sitze darin. Dann füllen Sie das Flugzeug mit Passagieren und schicken es irgendwo hin. Die Passagiere (oder besser gesagt eine räumlich-zeitlich veränderte Version davon) steigen aus. Am nächsten Tag verwenden Sie dasselbe Flugzeug und die gleichen Sitze, aber diesmal mit unterschiedlichen Passagieren. 

Das Flugzeug ist deine Funktion. 

Die Parameter sind die Sitze. 

Die Argumente sind die Passagiere, die in diese Sitze gehen. 

6
XML

Dieses Beispiel kann helfen.

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

Die Begriffe sind etwas austauschbar. Die in anderen Antworten beschriebene Unterscheidung wird mit den Begriffen Formalparameter für den im Rumpf der Funktion verwendeten Namen und Parameter für den an der Aufrufstelle angegebenen Wert ( Formalargument und argument sind auch üblich).

Beachten Sie auch, dass in der Mathematik der Begriff argument weitaus häufiger ist und parameter normalerweise etwas ganz anderes bedeutet (obwohl der Parameter in einer parametrischen Gleichung im Wesentlichen das Argument ist zwei oder mehr Funktionen).

6
Marcelo Cantos

Denken Sie immer daran, dass: -.____. Argumente übergeben werden, während Parameter empfangen werden.

6
HEMANT GIRI

Ja! Parameter und Argumente haben unterschiedliche Bedeutungen, die sich wie folgt erklären lassen:

Funktion Parameter sind die in der Funktionsdefinition aufgeführten Namen.

Funktion Argumente sind die tatsächlichen Werte, die an die Funktion übergeben werden (und von dieser empfangen werden).

4
anoNewb

Ein Argument ist eine Instantiierung eines Parameters.

4
Paul Richter

Beide haben keinen großen Unterschied in der Verwendung in C, beide Bezeichnungen werden verwendet in der Praxis . Meist werden Argumente oft mit Funktionen verwendet. Der mit der Funktionsaufrufanweisung übergebene Wert wird als Argument bezeichnet. Der Parameter wäre die Variable, die den Wert in der Funktionsdefinition kopiert (als Formalparameter bezeichnet). 

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

Im obigen Code sind num1 und num2 formale Parameter und a und b tatsächliche Argumente.

3
Bevin Sunth

Oder noch einfacher ...

Argumente in!

Parameter raus!

3
jpillora

Einfache Erklärungen ohne Code

Ein "Parameter" ist eine sehr allgemeine, weitreichende Sache, aber ein "Argument": ist eine sehr konkrete, konkrete Sache. Dies wird am besten anhand von Beispielen aus dem Alltag veranschaulicht:

Beispiel 1: Verkaufsautomaten - Geld ist der Parameter, $ 2,00 ist das Argument

Die meisten Maschinen nehmen eine Eingabe und geben eine Ausgabe zurück. Zum Beispiel nimmt ein Verkaufsautomat Geld ein und gibt zurück: Sprudelgetränke als Ausgabe. In diesem Fall akzeptiert es als Parameter: Geld. 

Was ist dann das Argument? Nun, wenn ich 2,00 $ in die Maschine stecke, lautet das Argument: 2,00 $ - es handelt sich um die ganz bestimmte Eingabe.

Beispiel 2: Autos - Benzin ist der Parameter

Betrachten wir ein Auto: Sie akzeptieren Benzin (unverbleites Benzin) als Input. Man kann sagen, dass diese Maschinenparametervom Typ: Benzin akzeptieren. Das Argument wäre die genaue und konkrete Eingabe, die ich in mein Auto stecke. z.B. In meinem Fall würde das Argument lauten: 40 Liter bleifreies Benzin.

Beispiel 3 - Ausarbeitung von Argumenten

Ein Argument ist ein bestimmtes und spezifisches Beispiel für eine Eingabe. Angenommen, mein Computer nimmt eine Person als Eingabe und verwandelt sie in jemanden, der kein Lügner ist.

Was ist dann ein Argument? Das Argument wird die Person sein, die tatsächlich in die Maschine eingesetzt wird. z.B. Wenn Colin Powell in die Maschine gesteckt wird, wäre Colin Powell das Argument. 

Der Parameter wäre also eine Person als abstraktes Konzept, aber das Argument wäre immer einebestimmte Personmit einembestimmten Namen, der in die Maschine eingegeben wird. Das Argument ist spezifisch und konkret.

Das ist der Unterschied. Einfach.

Verwirrt?

Schreibe einen Kommentar und ich werde die Erklärung korrigieren.

3
BKSpurgeon

Logischerweise sprechen wir eigentlich über dasselbe ... Aber ich denke, eine einfache Metapher wäre hilfreich, um dieses Dilemma zu lösen. 

Wenn die Metaphern als verschiedene Verbindungspunkte bezeichnet werden können, können wir sie mit Steckpunkten an einer Wand gleichsetzen .. In diesem Fall können Parameter und Argumente wie folgt betrachtet werden;

Parameters sind die Buchsen des Steckers, die verschiedene Formen annehmen können. Aber nur bestimmte Steckertypen passen dazu.
Argumente sind die tatsächlichen Stecker, die in die Steckerpunkte/Buchsen eingesteckt werden, um bestimmte Geräte zu aktivieren.

3
jaya96

Die Java-Tutorials von Oracle definieren diese Unterscheidung auf folgende Weise: "Parameter bezieht sich auf die Liste der Variablen in einer Methodendeklaration. Argumente sind die tatsächlichen Werte, die beim Aufruf der Methode übergeben werden. Wenn Sie eine Methode aufrufen, müssen die verwendeten Argumente übereinstimmen die Parameter der Deklaration in Typ und Reihenfolge. "

Eine ausführlichere Diskussion der Parameter und Argumente: https://docs.Oracle.com/javase/tutorial/Java/javaOO/arguments.html

3
J. Clarke

Wenn wir die Methode (Funktion) in Java erstellen, sieht die Methode so aus.

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

In der Klammer sind dies die Parameter, und wenn wir die Methode (Funktion) aufrufen, übergeben wir den Wert dieses Parameters, die als Argumente bezeichnet werden.

2
Summra Umair

Laut Josephs Alabahari-Buch "C # in a Nutshell" (C # 7.0, S. 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 einigen menschlichen Sprachen (afaikisch, italienisch, russisch) werden Synonyme häufig für diese Begriffe verwendet.

  • parameter = formaler Parameter
  • Argument = Aktualparameter

In meiner Universität verwenden Professoren beide Arten von Namen.

2
burzhuy

Parameter ist eine Variable in einer Funktionsdefinition
Argument ist ein Wert von Parameter

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

?>
1
antelove

Parameter sind Variablen, die zum Speichern der Daten verwendet werden, die von einer zu verwendenden Funktion an eine Funktion übergeben werden. Argumente sind die tatsächlichen Daten, die beim Aufruf an eine Funktion übergeben werden:

// 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
Rejaul Karim

Es ist perfekt erklärt in Parameter (Computerprogrammierung) - Wikipedia

Ein Parameter ist locker ein Typ und ein Argument eine Instanz.

In der Funktionsdefinition f(x) = x*x ist die Variable x ein Parameter; im Funktionsaufruf f(2) ist der Wert `` 2 das Argument der Funktion.

Und Parameter - Wikipedia

In Computerprogrammierung werden üblicherweise zwei Begriffe Parameter verwendet, die als Parameter und Argumente - oder formal als Formalparameter und ein Aktualparameter .

Zum Beispiel bei der Definition einer Funktion wie

y = f(x) = x + 2,

x ist der formale Parameter (der Parameter) der definierten Funktion.

Wenn die Funktion für einen bestimmten Wert ausgewertet wird, wie in

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

ist der Aktualparameter (das Argument) zur Auswertung durch die definierte Funktion; es ist ein gegebener Wert (Istwert), der den Formalparameter der definierten Funktion ersetzt. (Bei gelegentlicher Verwendung können die Begriffe Parameter und Argument versehentlich vertauscht und dadurch falsch verwendet werden.)

0
Algebra

Sie müssen zu den Grundlagen zurückkehren. Beide Konstruktoren und Methoden haben Parameter und Argumente. Viele Leute nennen sogar Konstruktoren spezielle Arten von Methoden. So wird eine Methode deklariert. Parameter werden verwendet :

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

Und so wird ein Konstruktor deklariert. Parameter werden verwendet :

classname(parameters){
//body
}

Nun sehen wir einen Beispielcode, mit dem wir das Volumen eines Cubes berechnen:

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

           }
    }

Nun verstehen Sie, dass wir beim Aufruf eines Konstruktors/einer Methode für ein Objekt an einer anderen Stelle im Code Argumente und keine Parameter übergeben. Hence-Parameter sind auf den Ort beschränkt, an dem das logische Objekt definiert ist, aber Argumente kommen bei einem physischen Objekt zum Tragen Objekt wird tatsächlich erstellt.

0
Manas Singh

Die Formalparameter für eine Funktion werden in der Funktionsdeklaration aufgeführt und im Rumpf der Funktionsdefinition verwendet. Ein formaler parameter (beliebiger Art) ist eine Art Leerzeichen oder Platzhalter, die beim Aufruf der Funktion mit etwas gefüllt wird.

Ein argument ist etwas, das verwendet wird, um einen Formalparameter einzugeben. Wenn Sie einen Funktionsaufruf aufschreiben, werden die Argumente hinter dem Funktionsnamen in Klammern aufgeführt. Wenn der Funktionsaufruf ausgeführt wird, werden die Argumente für die Formalparameter eingefügt.

Die Begriffe call-by-value und call-by-reference beziehen sich auf den Mechanismus, der beim Einstecken verwendet wird. In der Call-by-Value-Methode wird nur der Wert des Arguments verwendet. In diesem Call-by-Value-Mechanismus ist der Formalparameter eine lokale Variable, die mit dem Wert des entsprechenden Arguments initialisiert wird. Im Call-by-Reference-Mechanismus ist das Argument eine Variable und die gesamte Variable wird verwendet. Im Call-by-Reference-Mechanismus wird der Argumentparameter durch die Argumentvariable ersetzt, sodass alle Änderungen, die am Formalparameter vorgenommen werden, tatsächlich an der Argumentvariablen vorgenommen werden.

0
gay

Parameter sind die von einer Funktion empfangenen Variablen. Sie sind also in der Funktionsdeklaration sichtbar. Sie enthalten den Variablennamen mit ihrem Datentyp . Argumente sind tatsächliche Werte, die an eine andere Funktion übergeben werden. Deshalb können wir sie im Funktionsaufruf sehen. Sie sind nur Werte ohne ihren Datentyp 

0
shreesh katti

Ich dachte darüber nach und stellte fest, dass meine vorherige Antwort falsch war. Hier ist eine viel bessere Definition

{ Stellen Sie sich einen Karton mit Eiern vor: Eine Packung mit Wurstverknüpfungen: Und eine Magd } Diese stellen Elemente einer Funktion dar, die zur Zubereitung benötigt werden: (Verwenden Sie einen beliebigen Namen. 

Ein Dienstmädchen ist eine Methode. 

(Du musst __call_en oder diese Methode fragen um Frühstück zu machen) (Frühstück machen ist eine Funktion genannt Kochen ) _

Eier und Wurst sind Parameter:

(weil die Anzahl der Eier und die Anzahl der Würste, die Sie essen möchten, __variable_ ist.) _

Ihre Entscheidung ist ein Argument: 

Es stellt den Wert der ausgewählten Anzahl von Eiern und/oder Würsten dar, die Sie gerade kochen.

{ Mnemonic }

_ "Wenn Sie das Dienstmädchen anrufen und sie bitten, Frühstück zu machen, ___iert sie mit Ihnen darüber, wie viele Eier und Würste Sie essen sollten. Sie ist besorgt über Ihr Cholesterin." __

(Argumente sind dann die Werte für die Kombination von Parametern, die Sie deklariert haben und an Ihre Funktion übergeben haben.)

0
marcusjetson