Das Dereferenzieren in C (Das Dereferenzieren in C), Lektion, Seite 723184
https://www.purl.org/stefan_ram/pub/dereferenzieren_c (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
C-Kurs

Der Objektoperator in C 

Der unäre Präfixoperator »*« wird hier Objektoperator  genannt.

Ist A  die Adresse eines Objektes O, so ist *A  das Objekt O.

Daraus folgt:

&O  ist die Adresse des Objektes O, also ist *&O  das Objekt O.
main.c

#include <stdio.h>

int main( void )
{ int i = 26;
printf( "%d\n", *&i ); }

stdout
26

Dadurch, daß wir nun einen objektwertigen  Operator haben, kommt es erstmals vor, daß ein komplexer Ausdruck (ein Operatorausdruck) auf der linken  Seite des Gleichheitszeichen steht.

main.c

#include <stdio.h>

int main( void )
{ int i = 26; *&i = 53;
printf( "%d\n", i ); }

stdout
53

Ein Ausdruck, der ein Objekt angeben kann, wird auch hier auch Objektausdruck  genannt. Alles, was auf der linken Seite des Zuweisungsoperators »=« stehen kann, ist ein Objektausdruck.

In den obigen beiden Programmen sind »i« und »*&i« Objektausdrücke. Der Adressausdruck »&i« ist jedoch kein  Objektausdruck.

Man sagt auch, daß der Objektoperator »*« seinen Operanden dereferenziere. Daher nennen wir *A  auch den Referenten  der Adresse A .

Beispiel

In dem folgenden Programm wird eine Zufallszahl verwendet, um eine von zwei Adressen auszuwählen (zu berechnen). Anschließend wird der Objektoperator verwendet, um auf der linken Seite einer Zuweisung das zu der Adresse gehörende Objekt anzugeben. So wird entweder »a« oder »b« der Wert »1« zugewiesen.

main.c

#include <stdio.h>
#include <stdlib.h>

int main( void )
{ int a = 0;
int b = 0;
*( rand() /( RAND_MAX/2 )? &a : &b )= 1;
printf( "%d\n", a );
printf( "%d\n", b ); }

stdout
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 stefanram723184 stefan_ram:723184 Das Dereferenzieren in C Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723184, slrprddef723184, 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/dereferenzieren_c