Arrays (2/4)

Arraygröße

Die Angabe der Arraygröße muß keine literale Konstante sein, es kann auch ein anderer konstanter Wert oder Ausdruck eingesetzt werden. Konstant heißt hier insbesondere, daß der Wert zur Übersetzungszeit bekannt sein muß. Die auftretenden Fälle mache man sich am besten an den folgenden Beispielen klar:

  #define Konstante 4       // Zur Benutzung von #define 
  const int auchKonstant = 5;
  int nichtkonstant = 7;

  int a[3];                 // Das geht natuerlich klar
  int b[Konstante];         // Kein Problem: Nur Textersetzung
  int c[auchKonstant];      // geht auch klar
  int d[auchKonstant + 4];  // Compiler kann dies auswerten
  int e[nichtkonstant];     // Fehler! Kein konstanter Ausdruck

Zuweisungen an Arrays

Außer der elementweisen Zuweisung von Arrayelementen und der kompakten Initialisierung sind keine Zuweisungen an Arrays erlaubt. Insbesondere kann ein Array einem anderen nicht zugewiesen werden. Auch nicht als Initialisierung:

  int x[3] = { 1, 2, 3};
  int y[3] = x;          // Fehler
  int z[3];
  z = x;