Sign in Join
Wiki copytemporary

Const/de

Deutsch · English · Español · Français · Suomi · 中文(中国)

Zurück zu den Datentypen.
Zurück zu den reservierten Wörtern.\

=const=

Allgemeines zu Konstanten

Mit dem Schlüsselwort const beginnt die Deklaration der Konstanten.
Es gibt zwei Arten von Konstanten:\

==Unypisierte Konstanten== Einer untypisierten Konstanten kann nur einmal und zwar zum Zeitpunkt ihrer Deklaration (Bekanntmachung, Erstellung) ein Wert zugewiesen werden. Dieser Wert kann während der Laufzeit des Programmes nicht mehr geändert werden.
Für untypisierte Konstanten können einfache Datentypen verwendet werden.\

Beispieldeklaration untypisierter Konstanten:

pascal
 const
   IntegerZahl     = 210;        // Konstante vom Datentyp Integer
   FliesskommaZahl = 2.1;        // Konstante vom Datentyp Fliesskomma
   TextString      = 'Änderung'; // Konstante vom Datentyp String
   Buchstabe       = 'F';        // Konstante vom Datentyp String und vom Datentyp Char

Typisierte Konstanten

Bei typisierten Konstanten wird der Konstanten ein bestimmter Datentyp zugewiesen. Damit ist es möglich neben einfachen Datentypen, einer typisierten Konstanten z.B. auch Records und Arrays zuzuweisen.
Im Gegensatz zu untypisierten Konstanten kann der Wert einer typisierten Konstanten zur Laufzeit des Programms geändert werden.
Damit bietet unter Pascal die typisierte Konstante eine ähnliche Funktionalität, wie es in anderen Programmiersprachen der Befehl static bietet.\

Beispieldeklaration typisierter Konstanten:

pascal
 const
   Steuersatz: Single = 18.0;

   // Konstante Array aus 6 Buchstaben.
   Alpha:  array[1..6] of Char = ('A', 'B', 'C', 'D', 'E', 'F');
   
   // Andere Variante für Char.
   Ziffer: array[0..5] of char = '123456';
   
   // Als record.
   rec: record
     x, y, z: integer;
   end
   = (x: 123; y: 456; z: 789);
   
   // Verschachtelt
   rec2: record
     x, y, z: integer;
     f: record
       a, b: single;
     end;
     c: array[0..5] of char;
   end
   = (x: 123; y: 456; z: 789;
      f: (a: 1.2; b: 3.4);
      c: '123456');

Verwendung function/procedure-Kopf

Wird const im function/procedure-Kopf verwendet, dann wird (regelmäßig, nicht zwingend) nur ein Zeiger der Variable übergeben. Bei dem Beispiel mit dem String, würde es ohne const den ganzen String bei der Übergabe kopieren.

Dies könnte man auch mit var machen, aber dann wäre es nicht möglich eine Konstante der function/procedure zu übergeben.

Dafür kann die Variable in der function/procedure nicht geändert werden.

pascal
procedure Ausgabe(const s :String);
begin
  WriteLn(s);
end;

var
  s1: string;

begin
  s1 := 'Ein String';
  Ausgabe(s1);
  Ausgabe('Hello World !'); // Auch als Konstante möglich.
end.

From the Free Pascal wiki, page "Const/de", as it stood on 2020-02-12 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 3, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.