Referenz - Plus
Syntax A: Wert = Ausdruck1 + Ausdruck2
Syntax B: Ausdruck1 += Ausdruck2
Typ: Operator
Kategorie: Operatoren
Das Plus-Zeichen kann in FreeBASIC zur einfachen (Syntax A) und kombinierten (Syntax B) Addition eingesetzt werden. Syntax B ist eine Kurzform von
Ausdruck1 = Ausdruck1 + Ausdruck2
Je nach Datentyp der Ausdrücke bewirkt die Addition unterschiedliches. Zahlen werden wie gewohnt addiert, Strings werden aneinander gehängt. Außerdem gibt es auch die Möglichkeit, zu einem Pointer zu addieren.
Das Plus-Zeichen kann mithilfe von OPERATOR überladen werden.
Addition zweier Zahlen
In dieser Form eingesetzt bewirkt das Plus die Addition zweier Argumente; der Rückgabewert ist die Summe der beiden Argumente. Die Argumente dürfen Zahlen, numerische Konstanten, numerische Variablen, und numerische Rückgabewerte von Funktionen sein. Die Addition ist die Gegenfunktion zur Subtraktion.
Beispiel:
DIM AS SINGLE n
n = 4.54 + 5.46
n += 7.5
PRINT n
SLEEP
Ausgabe:
17.5
Stringverkettung
Auf Strings angewendet verkettet das Plus-Zeichen zwei Strings zu einem, in dem auf den Inhalt von String1 der von String2 folgt. Dieses Konstrukt funktioniert mit Strings, ZStrings und WStrings. Zur Stringverkettung kann auch das Zeichen & verwendet werden.
Beispiel:
DIM AS STRING a, c
a = "HELLO,"
a += " WORLD"
c = a + "!"
PRINT c
SLEEP
Ausgabe:
HELLO, WORLD!
Addition an Pointern
Addition an Pointern ermöglicht, die Adresse zu ändern, auf die ein Pointer zeigt. Der addierte Wert wird jedoch zuvor mit SIZEOF(Pointertyp) multipliziert. Dies vereinfacht dem Programmierer, sicherzustellen, dass seine Pointer auf sinnvolle Adressen zeigen.
Beispiel:
DIM a(10) AS INTEGER
DIM pa AS INTEGER PTR
DIM i AS INTEGER
' Das Array mit Werten von 0 bis 10 befüllen
FOR i = 0 TO 10
a(i) = i
NEXT
' Einen Pointer auf den Beginn des Arrays setzen
pa = @a(0)
FOR i = 0 TO 10
' Den Wert ausgeben, auf den der Pointer gerade zeigt:
PRINT *pa;
' den Pointer um eine INTEGER-Stelle verschieben:
pa += 1
NEXT
SLEEP
Ausgabe:
0 1 2 3 4 5 6 7 8 9 10
Erläuterung: Mit jeder Zeile
pa += 1
wird zum Wert von 'pa' tatsächlich 4 addiert, denn 4=1*SIZEOF(INTEGER). Würden wir hier einen SHORT-Pointer (und dazu sinnvollerweise ein SHORT-Array) verwenden, würde sich der Wert um 2 verschieben.
Unterschiede zu QB:
- Kombinierte Operatoren sind neu in FreeBASIC.
- Addition an Pointern ist neu in FreeBASIC.
Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.14 wird bei der Subtraktion an Pointern automatisch die Multiplikation mit der Größe des Pointertyps durchgeführt. Davor musste der Programmierer selbst sicherstellen, dass Pointer weit genug verschoben wurden.
Siehe auch:
Und (et-Ligatur), Pointer, mathematische Funktionen
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|