Aufrufausdrücke in Operatorausdrücken in C [] (Aufrufausdrücke in Operatorausdrücken in C), Lektion, Seite 722978
https://www.purl.org/stefan_ram/pub/aufrufe_und_operatoren_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Aufrufe als Operanden in C 

Das folgende Programm gibt eine mehr oder weniger zufällig ausgewählte int-Zahl zwischen »0« (einschließlich) und <stdlib.h> »RAND_MAX« (einschließlich) aus.

main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

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

stdout
41

Operanden dürfen auch Aufrufausdrücke sein.

Ein Aufruf einer Funktion, die den Typ »int« hat darf überall dort verwendet werden, wo wir bisher auch ein int-Literal oder einen int-Operatorausdruck mit einem Ergebnis vom Typ »double« verwendet haben. Der Aufrufausdruck steht dabei für seinen Wert, also den Rückgabewert der aufgerufenen Funktion.

main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

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

stdout
41
main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

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

stdout
-41

Wir können die Aufrufklammern »()« als einen unären Postfixoperator ansehen, und das Minuszeichen »-« ist ein unärer Präfixoperator. Die Priorität unärer Postifixoperatoren ist höher als die unärer Präfixoperatoren, so daß der obige Ausdruck wie »-(rand())« ausgewertet wird.

main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

int main( void )
{ printf
( "%d\n", rand() / RAND_MAX ); }

stdout
0
main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

int main( void )
{ printf
( "%d\n", rand() + 10 ); }

stdout
51
main.c

#include <stdio.h> /* printf */
#include <stdlib.h> /* rand */

int main( void )
{ printf
( "%g\n", rand() / 10. ); }

stdout
4.1
Priorität und Assoziativität der bisher behandelten Operatoren
()                   Eingeklammerter Ausdruck
() Aufrufoperator
+ - Unaere vorangestellte Operatoren
* / Multiplikation, Division
+ - Addition, Subtraktion

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 stefanram722978 stefan_ram:722978 Aufrufausdrücke in Operatorausdrücken in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd722978, slrprddef722978, 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/aufrufe_und_operatoren_c