Der Aufbau Constant Arrays in C ++

Wenn Sie ein Array haben, und Sie wollen nicht, um seinen Inhalt zu ändern, können Sie es eine konstante Array. Die folgenden Codezeilen, in der gefunden Array05 Beispiel zeigen diesen Ansatz:

const int Permanent [5] = {1, 2, 3, 4, 5} -cout lt; lt; Permanent [1] lt; lt; endl-

Dieses Array funktioniert wie jedes andere Array, außer dass Sie nicht die Zahlen im Inneren verändern kann. Wenn Sie eine Zeile wie die folgende Zeile hinzufügen, erhalten Sie einen Compiler-Fehler, da der Compiler bekannt Konstanten ist:

Permanent [2] = 5-

Hier ist der Fehler, den Sie erhalten, wenn Sie dies in Code :: Blocks versuchen:

Fehler: Zuordnung von Nur-Lese-Standort "Permanent [2]"

Was ist mit einer konstanten Array von nonconstants? Können Sie das tun? Nun, manchmal - je nach Compiler. Wie schrecklich, wie der folgende Code (in der gefunden Array06 Beispiel) sieht - und es ist nicht ANSI-Standard! - Sie dürfen diese mit älteren Versionen der gcc-Compiler zu tun. (Microsoft Visual C ++ und Borland C ++ Builder lassen Sie es nicht, und der Code :: Blocks Compiler stellt Ihnen ein Fehler: ungültige Array Zuordnung Fehlermeldung.)

int nicht konstanter [5] = {1, 2, 3, 4, 5} -Int OtherList [5] = {10, 11, 12, 13, 14} = -OtherList NonConstant-

Mit anderen Worten, dass dritte Zeile zu sagen, # 147-Vergessen Sie, was OtherList stattdessen verweist to, machen es zu dem ersten Array zeigen, {1,2,3,4,5}!# 148-, haben Sie jetzt wirklich sollte nicht der Code wie folgt (denken Sie daran, die Dinge einfach halten und verständlich), schreiben Sie also, wenn Sie diese Art der Sache zu verhindern möchten, können Sie das Array konstant zu machen:

const int nicht konstanter [5] = {1, 2, 3, 4, 5} -const int OtherList [5] = {10, 11, 12, 13, 14} = -OtherList NonConstant-

Nun, wenn der Compiler in die dritte Zeile bekommt, gibt es Ihnen eine Fehlermeldung:

Fehler: Zuordnung von read-only Variable 'OtherList'

Aber Sie können feststellen, dass die Art und Weise Sie das Array konstant gemacht war die gleiche Weise, dass Sie seine Elemente Konstante im Code gemacht, die kurz vor diesem Beispiel kam. Hoppla! Was ist das alles über? Es stellte sich heraus gibt es einige Regeln.

Die folgende Liste beschreibt die Regeln im Detail für Arrays konstant zu machen:

  • Wenn Sie ein Array konstant zu machen möchten, können Sie seine Art mit dem Wort vorangehen const. Wenn Sie dies tun, ist der Name des Arrays konstant, und die Elemente innerhalb des Arrays sind ebenfalls Konstante. So können Sie nicht eine konstante Array mit nicht konstanten Elementen, noch können Sie eine nicht konstante Array mit konstanten Elementen haben.

  • Die Vorstellung von einem nicht konstante Array nur in gcc existiert und nicht ANSI-Standard.

Wenn Sie wirklich technische wollen zu bekommen, sagt der C ++ ANSI-Standard, dass, wenn Sie das Wort setzen const vor einer Array-Deklaration, machst du nicht das Array Konstant- Sie sagen, dass das Array nur Konstanten hält.

Doch wenn Sie const auf diese Weise, die meisten Compiler machen auch das Array selbst konstant. Aber das ist fein- Menschen sollten nicht ein Array Namen nehmen und kopieren sie auf etwas anderes. Das ist nicht gut Programmierstil, und es ist nur gefragt, für Fehler - oder zumindest Verwirrung - später.

Menü