Was bedeuten in C++ Deklarationen und Konstanten?

Hallo zusammen

ich bitte euch um kurze Lösung der folgenden Klausuraufgabe aus der Programmierung mit C++:

Was bedeuten die folgenden Code-Strecken:

  1. int a = x
  2. int a = *x
  3. int a = &x
  4. int &b = c
  5. int *d = &e
  6. int *&f = g
  7. const int h = i
  8. const int *j = &k
  9. int const *l = &m
  10. int *const n = &o

Die ersten paar Zeilen bekomme ich ja noch hin, dann wird es aber auch schon eng…

Danke!

  1. Du erzeugst eine Variable a mit dem Datentyp int und dem Wert x

  2. Du erzeugst eine Variable a mit dem Datentyp int und dem Wert der an der Speicheradresse x steht die bspw. einen Pointer representiert.

  3. Du erzeugst eine Variable a mit dem Datentyp int die den Wert der Adresse von Variable x hat.

  4. Du erzeugst eine Referenz vom Datentyp int welche auf die Variable c zeigt.

  5. Du erzeugst einen Pointer d vom Datentyp int der auf die Adresse der Variable e zeigt.

  6. An der Speicheradresse f soll der Wert g stehen?

  7. Du erzeugst eine Konstante mit dem Wert von i. Danach lässt sich der Wert von h nicht mehr verändern

  8. Du erzeugst einen konstanten Pointer auf die Speicheradresse der Variable k. Der Inhalt des Pointers bzw. der enthaltene Wert lässt sich nicht mehr verändern

  9. Fehler ? Sowas kenn ich nicht…

  10. Wieder ein konstanter Pointer. Diesmal kann allerdings der Inhalt von ihm verändert werden. Der Pointer selber kann nicht mehr umgebogen werden

6+9 finde ich komisch.
Falls sonst noch Fehler drinne sind lass ich mich gerne korrigieren!

Gruß!

Ich habe mittlerweile eine Antwort von einem Dozenten für C++ erhalten.

Punkt 1 - 5 sind in Ordnung, so wie du beschrieben hast.

  1. int *&f = g wird vom Compiler nicht akzeptiert, denn die Veriable muss mit einem Buchstaben oder „_“ beginnen.

  2. const int h = i Zuweisung Wert von i an konstanten Int-Wert h

  3. const int *j = &k Variabler Pointer auf konstanten Int-Wert

  4. int const *l = &m dto.

  5. int *const n = &l Konstanter pointer auf variablen Int-Wert

Ich hoffe, das habe ich jetzt richtig verstanden. Danke trotzdem!

  1. int *&f = g wird vom Compiler nicht akzeptiert, denn die
    Veriable muss mit einem Buchstaben oder „_“ beginnen.

Hast du’s mal versucht?
int*& f bezeichnet eine Referenz auf eine Variable vom Typ „int *“. Also eine Referenz auf einen int-Pointer. Sollte funktionieren.

Grüße,
sebastian