Video: 01.17 - C Grundlagen - Übung5: Aus Großbuchstaben Kleinbuchstaben machen 2024
Wenn Sie ein Array haben und dessen Inhalt sich nicht ändern soll, können Sie es zu einem konstanten Array machen. Die folgenden Codezeilen, die im Array05-Beispiel gefunden wurden, demonstrieren diesen Ansatz:
const int Permanent [5] = {1, 2, 3, 4, 5}; cout << permanent [1] << endl;
Dieses Array funktioniert wie jedes andere Array, außer dass Sie die darin enthaltenen Zahlen nicht ändern können. Wenn Sie eine Zeile wie die folgende Zeile hinzufügen, erhalten Sie einen Compilerfehler, da der Compiler Konstanten kennt:
Permanent [2] = 5;
Hier ist der Fehler, den Sie bekommen, wenn Sie dies versuchen in Code:: Blocks:
Fehler: Zuweisung der schreibgeschützten Position 'Permanent [2]'
Was ist mit einer konstanten Anordnung von Nichtkonstanten? Können Sie das tun? Nun, manchmal - je nach Compiler. So schrecklich wie der folgende Code (im Beispiel Array06) aussieht - und es ist nicht ANSI-Standard! - Sie dürfen das mit älteren Versionen der gcc-Compiler machen. (Microsoft Visual C ++ und Borland C ++ Builder lassen es nicht zu, und der Code:: Blocks-Compiler präsentiert Ihnen einen Fehler: ungültige Array-Zuordnungsfehlermeldung.)
int NonConstant [5] = {1, 2, 3, 4, 5}; int OtherList [5] = {10, 11, 12, 13, 14}; OtherList = Nichtkonstante;
Mit anderen Worten, diese dritte Zeile sagt: "Vergiss, worauf OtherList hinweist; Verweisen Sie stattdessen auf das erste Array {1, 2, 3, 4, 5}! "Nun, Sie wirklich sollten keinen Code wie diesen schreiben (denken Sie daran, behalten Sie die Dinge einfach und verständlich). Wenn Sie also solche Dinge verhindern wollen, können Sie das Array konstant machen:
< ! --3 ->const int Nichtkonstante [5] = {1, 2, 3, 4, 5}; const int OtherList [5] = {10, 11, 12, 13, 14}; OtherList = Nichtkonstante;
Nun, wenn der Compiler die dritte Zeile erreicht, gibt er Ihnen einen Fehler:
Fehler: Zuweisung der schreibgeschützten Variablen 'OtherList'
Sie können jedoch feststellen, dass die Art, wie Sie das Array konstant gemacht haben Auf die gleiche Weise, wie Sie ihre Elemente in dem Code, der vor diesem Beispiel kam, konstant gemacht haben. Hoppla! Was ist das alles über? Es stellte sich heraus, dass es einige Regeln gibt.
Die folgende Liste beschreibt die Regeln im Detail, um Arrays konstant zu machen:
-
Wenn Sie ein Array konstant machen wollen, können Sie seinem Typ das Wort const voranstellen. Wenn Sie das tun, ist der Name des Arrays konstant und die Elemente innerhalb des Arrays sind und konstant. Daher können Sie weder ein konstantes Array mit nichtkonstanten Elementen noch ein nichtkonstantes Array mit konstanten Elementen haben.
-
Der Begriff eines nichtkonstanten Arrays existiert nur in gcc und ist kein ANSI-Standard.
Wenn Sie wirklich technisch arbeiten wollen, sagt der C ++ - ANSI-Standard, dass Sie das Array konstant machen, wenn Sie das Wort const vor eine Array-Deklaration setzen; Sie sagen, dass das Array nur Konstanten enthält.
Wenn Sie const jedoch auf diese Weise verwenden, machen die meisten Compiler das Array selbst ebenfalls konstant. Aber das ist gut; Die Leute sollten keinen Array-Namen nehmen und ihn zu etwas anderem kopieren. Das ist kein guter Programmierstil und es fragt nur nach Fehlern - oder, zumindest, Verwirrung - später.