Einführung in Argumente in C++ im Rahmen der Lehre des Programmierens. [] (C++ Argumente), Lektion, Seite 721083
http://www.purl.org/stefan_ram/pub/c++_argumente (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram

Argumentwerte in C++ 

Die Operation einer Funktion kann in C++  durch einen Argumentwert  näher bestimmt werden.

In dem folgenden Programm wird die Operation »::std::printf( "Hallo!\n" )« mit dem Argument »"Hallo!\n"« der Funktion »::std::printf« notiert. Die Auswertung dieses Ausdrucks bewirkt dann die Ausführung dieser Operation, also die Ausgabe des Textes »Hallo!« und des Abschlusses der Zeile. Man sagt auch manchmal, in dem Ausdruck »::std::printf( "Hallo!\n" )« werde die Funktion »printf« auf das Argument  »"Hallo\n"« angewendet  oder die Funktion »printf« werde mit dem Argument  »"Hallo\n"« oder für das Argument  »"Hallo\n"« aufgerufen.

hallo.cpp
#include <cstdio>  // ::std::printf

int main(){ ::std::printf( "Hallo!\n" ); }
::std::cout
Hallo!

Die Funktion »::std::printf« sollte normalerweise nicht zur Ausgabe verwendet werden, da dafür in C++  der schon verwendete Ausgabeoperator »<<« besser geeignet ist. Sie wird nur wegen ihrer Einfachheit und Anschaulichkeit als Beispiel einer Funktion, die ein Argument akzeptiert, verwendet.

Es folgt eine vereinfachte Dokumentation der Funktion »printf«.

::std::printf
#include <cstdlib>
int ::std::printf( char * zeichenfolge );
Wirkung: Ausgabe der zeichenfolge.
Wert: Die Anzahl der ausgegebenen Zeichen.

Neu an dieser Dokumentation ist die Parameterbeschreibung »char * zeichenfolge«. Sie gibt die Stelle an, an der bei einer Verwendung das Argument steht. Der Parametertyp »char *« gibt den erwarteten Typ des Arguments an. Der Parametername (kurz: „Parameter“) »zeichenfolge« steht dabei als eine Art von Platzhalter für das Argument.

Man kann die Funktion »::std::printf« auch als eine „parametrisierte Operation“ verstehen. Das bedeutet, daß durch die Funktion »::std::printf« alleine noch keine Operation angegeben wird, sondern noch ein Argumentwert hinzugefügt werden muß, um eine bestimmte Operation, wie beispielsweise die Operation »printf( "Hallo!\n" )« zu notieren.

?    Resultattyp
Welchen Typ hat das Resultat der Funktion »::std::printf«?
?    char *
Der Typ »char *« wurde im Kurs bereits vorgestellt. Welche Erklärung wurde dabei für »char *« angegeben?

Übungsaufgabe

Mit der folgenden Übungsaufgabe soll das selbständige Schreiben von Programmen an Hand der Dokumentation weiter geübt werden. Dazu wird die folgenden Dokumentation verwendet:

::std::putchar
#include <cstdio>
int ::std::putchar( int kennzahl );
Wirkung: Ausgabe des Zeichens mit der angegebenen Kennzahl.
Wert: Das ausgegebene Zeichen.
?    Resultattyp
Welchen Typ hat das Resultat der Funktion »::std::putchar«?
?    Parametertyp
Welchen Typ hat der Parameter der Funktion »::std::putchar«?
/    Ausgabe eines Zeichen ohne Verwendung des Resultats
Schreiben Sie ein C++ -Programm, in dem die Funktion »::std::putchar()« nur wegen ihrer Wirkung  aktiviert wird, während ihr Resultat verworfen wird. Dabei soll die Funktion verwendet werden, um das Zeichen mit der Kennzahl 65 auszugeben. Danach soll mit der Anweisung »::std::cout << '\n';« noch ein Zeilenende ausgegeben werden. Außerdem sollen alle nötigen include-Direktiven verwendet werden.
/    Ausgabe eines Zeichen mit Verwendung des Resultats
Ergänzen Sie das Programm der vorigen Aufgabe um eine Anweisung, in der mit der Funktion »::std::putchar()« das Zeichen mit der Kennzahl 65 ausgegeben wird und in der außerdem auch das Resultat dieses Aufrufs ausgegeben wird. Dabei soll zur Ausgabe dieses Resultats der Ausgabeoperator »<<« verwendet werden und nicht  die Funktion »::std::printf«. Diese weitere Anweisung soll vor der Anweisung zur Ausgabe des Zeilenendes eingefügt werden.
/    Ausgabe eines eingelesenen Zeichen
Schreiben Sie ein Programm, das ein mit »::std::getchar« eingelesenes Zeichen mit »::std::putchar« wieder ausgibt. In diesem Programm sollte also weder »printf« noch der Ausgabeoperator verwendet werden.

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram721083 stefan_ram:721083 slrprd, slrprdqxx, slrprddoc, slrprd721083, slrprddef721083, PbclevtugFgrsnaEnz

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten.
http://www.purl.org/stefan_ram/pub/c++_argumente