Pointer-Zugriff-Operator ->

Der Pointer-Zugriff-Operator erlaubt es, auf untergeordnete Symbole einer Variablen vom Typ Pointer auf struct, Pointer auf class oder Pointer auf union zuzugreifen. Die Variable steht dabei links der Zeichen -> und das gewünschte Symbol auf der rechten Seite.











Name: Maria
Age : 33
#include <stdio.h>

struct Person{
  char* name;
  int age;
};

int main(){
  struct Person pers = {"Maria", 33};
  struct Person* p = &pers;
  printf("Name: %s\n", p->name);
  printf("Age : %d\n", p->age);
  return 0;
}

Details

Der Pointer-Zugriff-Operator erwartet links einen lvalue und rechts ein Symbol und wird von links nach rechts abgearbeitet. Der Rückgabewert ist ein lvalue: Der Wert des gesuchten Symbols.

Auf der linken Seite des Pointer-Zugriff-Operators kann ein beliebiger Ausdruck stehen, der zu einem lvalue ausgewertet wird. Wenn der links stehende Ausdruck als const deklariert ist, so gilt dies auch für den Rückgabewert.

Der Pointer-Zugriff-Operator wird für Ausdrücke verwendet, welche einen Pointer auf einen Wert darstellen. Im Gegensatz dazu wird der Feld-Zugriff-Operator für Ausdrücke verwendet, welche direkt einen Wert oder eine Referenz auf einen solchen Wert darstellen.