Die Auswertung des Steuerausdrucks beim ternären Operator in C [] (Die Auswertung des Steuerausdrucks beim ternären Operator in C), Lektion, Seite 723438
https://www.purl.org/stefan_ram/pub/steuerausdruck_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Die Auswertung des ersten  Operanden des ternären Operators in C 

Syntax

Hier geben wir das schon gezeigte Syntaxdiagramm erneut wieder.

Syntaxdiagramm (vereinfacht)
Ausdruck
.----------. .-. .----------. .-. .----------.
--->| Ausdruck |--->( ? )-->| Ausdruck |--->( : )-->| Ausdruck |--->
'----------' '-' '----------' '-' '----------'

Semantik (Teil I)

Die Auswertung  eines ternäre Ausdrucks bewirkt zunächst einmal die Auswertung seines ersten Operanden.

Dies zeigt das folgende Beispiel.

main.c

#include <stdio.h>

int main( void )
{ puts( "alpha" )?0:0; }

stdout
alpha

Derselbe Effekt könnte vergleichsweise auch durch eine Auswertung mit einer Auswertungsanweisung  erreicht werden.

main.c

#include <stdio.h>

int main( void )
{ puts( "alpha" ); }

stdout
alpha

Falls die Auswertung des ersten Ausdrucks keine  Ausgabe erzeugt, ist sie unter Umständen nicht mehr beobachtbar, aber findet trotzdem statt. In dem folgenden Programm wird beispielsweise der Ausdruck »0« ausgewertet.

main.c

#include <stdio.h>

int main( void )
{ 0 ?1:2; }

stdout
(keine Ausgabe)

Übungsfragen

?   Übungsfrage

Welche Ausgabe erzeugt das folgende Programm?

main.c

#include <stdio.h>

int f()
{ puts( "Anton" );
return 1; }

int main( void )
{ f() ?0:0; }

?   Übungsfrage

Welche Ausgabe erzeugt das folgende Programm?

main.c

#include <stdio.h>

int f()
{ puts( "Berta" );
return 0; }

int main( void )
{ f() ?0:0; }

?   Übungsfrage

Welche Ausgabe erzeugt das folgende Programm?

main.c

#include <stdio.h>

int f()
{ puts( "Dora" );
return 1; }

int main( void )
{ f() ?1:0; }

?   Übungsfrage

Welche Ausgabe erzeugt das folgende Programm?

main.c

#include <stdio.h>

int f()
{ puts( "Emil" );
return 1; }

int main( void )
{ f() ?0:1; }

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 stefanram723438 stefan_ram:723438 Die Auswertung des Steuerausdrucks beim ternären Operator in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723438, slrprddef723438, 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/steuerausdruck_c