Operators/de

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en)
Zurück zu den Pascal Grundlagen.


FreePascal Operatoren


Adressoperator

Der Adressoperator @ gibt die Anfangsadresse einer Variablen, einer Prozedur oder einer Funktion zurück.
Ist der Compilerswitch {$T-}, dann ist der Rückgabewert ein untypisierter Pointer.
Ist der Compilerswitch {$T+}, dann ist der Rückgabewert ein typisierter Pointer.
Die Standardeinstellung für den Compiler ist {$T-}.

Zuweisungsoperator

Der Zuweisungsoperator, weist einem Datenfeld einen Wert zu.

a := b;

Relationale Operatoren

Folgende Operationen sind möglich:

  1. Ganzzahlige- und Fliesskommadatenfelder können auf beiden Seiten des Operators gemischt verwendet werden.
  2. Short-, Ansi- und Widestringdatenfelder können auf beiden Seiten des Operators gemischt verwendet werden.
= gleich
<> ungleich
< kleiner als
> grösser als
<= kleiner gleich
>= grösser gleich
in Prüft, ob das Element in einem Set des gleichen Datentyps vorkommt.


Binäre arithmetische Operatoren

+ Addition
- Subtraktion
* Multiplikation
/ Division
div Ganzzahldivision (Berechnet den ganzzahligen Wert davon, wie oft eine Ganzzahl in einer anderen Ganzzahl vorhanden ist.)
mod Modulodivision (Berechnet den ganzzahligen Rest einer Division zweier Ganzzahlen.)


Unäre arithmetische Operatoren

+ legt als Vorzeichen fest, dass der Wert positiv ist
- legt als Vorzeichen fest, dass der Wert negativ ist
Beispiele:

  a := +7;
  b := -3;


Logische Operatoren

not Bitweise unäre Negation
and Bitweises und
or Bitweises oder
xor Bitweises exclusives oder
shl Bitweises Shift (verschieben) nach links
shr Bitweises Shift (verschieben) nach rechts
<< Bitweises Shift (verschieben) nach links (Entspricht dem Operator shl)
>> Bitweises Shift (verschieben) nach rechts (Entspricht dem Operator shr)


Beispiele:

A shr 1  // Entspricht Ganzzahl DIV 2 (nur dass es schneller geht)
         // (nur für ganzzahlige Datenfelder, das Ergebnis ist ganzzahlig abgerundet)
Not 1    // Entspricht -2
Not 0    // Entspricht -1
Not -1   // Entspricht 0
B shl 2  // Entspricht Ganzzahl * 4 (nur dass es schneller geht)
         // (nur für ganzzahlige Datenfelder, das Ergebnis ist ganzzahlig)
1 or 2   // Entspricht 3
3 xor 1  // Entspricht 2


Wahrheitsoperatoren

not logische Negation (unary)
and logisches und
or logisches oder
xor logisches xor


String-Operatoren

+ Stringaddition (fügt zwei Strings zusammen)

Set Operatoren

+ Vereinigungsmenge
- Differenzmenge
* Schnittmenge
>< Symmetrische Differenz
<= Enthält
include Ein Element zum Set hinzufügen
exclude Ein Element im Set löschen
in Sieht nach, ob sich ein Element im Set befindet


Klassenoperatoren

is prüft, ob das Objekt von einer bestimmte Klasse ist
as führt eine bedingte Typumwandlung (bedingtes Typecasting) durch


Zeiger-Operatoren

Operator Operation Operandtyp Ergebnistyp Beispiel
+ Zeigeraddition Zeichenzeiger, Integer Zeichenzeiger P + I
- Zeigersubtraktion Zeichenzeiger, Integer Zeichenzeiger P - Q
^ Zeiger-Dereferenzierung Zeiger Basistyp von Zeiger P^
= Gleich Zeiger Boolean P = Q
<> Ungleich Zeiger Boolean P <> Q

Die Priorität der Operatoren

Für die Abarbeitung der Operatoren gibt es eine starre Reihenfolge.

Operator Priorität Kategorie
Not, @ erste (höchste) Unäre Operatoren
* / div mod and shl shr as << >> zweite Multiplizierende Operatoren
+ - or xor dritte Addierende Operatoren
< <> < > <= >= in is vierte (niedrigste) Relationale Operatoren



--Olaf 08:30, 4 November 2012 (UTC)