Hallo,
aus meinen frühen Konosolen C++-Zeiten habe ich main immer ohne Parameter definiert, jetzt habe ich schon öfters diese Deklaration gesehen: main (int argc, char *argv[]).
die Argumente werden jedoch im Funktionsablauf nicht weiter verwendet...
wozu dienen sie?
argc enthält die Anzahl an Kommandozeilenparameter + 1 und argv enthält die Kommandozeilenparameter sowie den Namen des aufgerufenen Befehls.
Wenn Du beispielsweise auf der Kommandozeile folgendes aufrufst ("meinprogramm" sei der Weg, Dein Programm aufzurufen):
meinprogramm hallo welt
dann ist argc == 3 und argv[0] == "meinprogramm", argv[1] == "hallo", argv[2] == "welt" und argv[3] == NULL.
Das ist übrigens nicht nur auf der Kommandozeile relevant. Wenn Du zum Beispiel ein Programm schreibst, das PDF-Dateien anzeigt, wir nennen es jetzt mal "zeigepdfan" und Du dieses Programm in den Einstellungen Deines Betriebsystems/Deiner Desktopumgebung mit dem Datentyp PDF verküpfst, dann wird bei jedem direkten Öffnen einer PDF-Datei das Programm aufgerufen, als ob es so über die Kommandozeile aufgerufen würde:
zeigepdfan /pfad/zur/datei.pdf
(oder unter Windows: zeigepdfan C:\pfad\zur\datei.pdf)
Das heißt, argv[0] wäre dan "zeigepdfan" und argv[1] wäre "/pfad/zur/datei.pdf", argv[2] wäre NULL und argc wäre 2.
Viele Grüße,
Christian