printf als Funktion in C (printf als Funktion in C), Lektion, Seite 724132
https://www.purl.org/stefan_ram/pub/printf_funktion_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

»printf« als Funktion in C 

Ausgabeanweisungen als Auswertungsanweisungen

Eine Ausgabeanweisung  (mit »printf«) ist ebenfalls eine Auswertungsanweisung.

Es handelt sich um nichts anderes als einen gewöhnlichen Aufruf der Funktion »printf«, gefolgt von einem Semikolon.

Ein Aufruf der Funktion »printf« (ein Ausdruck)
printf
( "%d\n", 86 )
Ein Aufruf der Funktion »printf« mit einem folgenden Semikolon (eine Anweisung)
printf
( "%d\n", 86 );

Nur weil wir am Anfang dieses Kapitels den Begriff „Auswertungsanweisung“ noch nicht eingeführt hatten, bezeichneten wir eine solche Anweisung zunächst als „Ausgabeanweisung“. Der Begriff „Ausgabeanweisung“ kann aber auch weiterhin beibehalten werden, um eine zur Ausgabe verwendete Anweisung zu bezeichnen.

Formatierungsvarianten

Wir haben bisher hinter dem Worte »printf« eine neue Zeile begonnen

»println« und »(« auf zwei verschiedenen Zeilen
printf
( "%d\n", 86 )

»printf« und die folgende runde Klammer auf »(« sind jeweils eine lexikalische Einheit. Aufeinanderfolgende lexikalische Einheiten dürfen in C  aber im allgemeinen direkt hintereinander geschrieben werden (falls die erste lexikalische Einheit dadurch nicht verlängert  wird). Daher ist es auch erlaubt, die ganze Ausgabeanweisung auf einer einzigen Zeile  zu schreiben.

»printf« und »(« direkt hintereinander
printf( "%d\n", 86 )

Der Wert  eines Aufrufs von »printf«

Wenn »printf( "%d\n", 86 )« ein ganz normaler Aufruf einer Funktion ist, dann sollte er auch einen Wert  haben. Tatsächlich können wir den Wert eines printf-Aufrufs mit »printf« selber ausgeben!

main.c

#include <stdio.h>

int main( void )
{ printf( "%d\n", printf( "%d\n", 86 )); }

Protokoll
86
3

Der Wert eines Aufrufs der Funktion »printf« ist normalerweise die Anzahl der ausgegebenen Zeichen. »8«, »6« und ein Zeilenende sind drei Zeichen.

»printf« und »putchar«

Der Umwandlungsspezifizierer »%c« erlaubt es, »putchar« mit »printf« nachzubilden.

main.c

#include <stdio.h>

int main( void )
{ putchar( 86 ); }

Protokoll
V
main.c

#include <stdio.h>

int main( void )
{ printf( "%c\n", 86 ); }

Protokoll
V

»%c« verlangt, daß das Schriftzeichen ausgegeben wird, dessen Kennzahl der Wert des zugehörigen Arguments (oben »86«) ist. Daher gibt »printf( "%c\n", 86 )« wie »putchar( 86 );« das Schriftzeichen aus, dessen Kennzahl gleich »86« ist.

Umwandlungsspezifizierer und Ausdrücke

... ... Typ Merkwort

s  "Text" char * s-tring
d  86 int d-ezimalsystem
g  1.86 double g-leitkommazahl
c 86 int c-ode eines Zeichens

»putchar( 86 )« und »printf( "%c", 86 )« haben beide dieselbe Wirkung. Da »putchar( 86 )« einfacher und wahrscheinlich meist schneller ist, wird man dies oft bevorzugen. Außerdem unterscheiden sich beiden Funktionen in der Bedeutung ihres Ergebniswertes.

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. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724132 stefan_ram:724132 printf als Funktion in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724132, slrprddef724132, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/printf_funktion_c