Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - Plus

Referenz-Navigation

 

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 BefehlsreferenzeintragOPERATOR ü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 BefehlsreferenzeintragSubtraktion.

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 Befehlsreferenzeintrag& 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 BefehlsreferenzeintragSIZEOF(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:

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:
BefehlsreferenzeintragUnd (et-Ligatur), BefehlsreferenzeintragPointer, Befehlsreferenzeintragmathematische Funktionen


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 06.08.2007 von RedakteurVolta angelegt.
  • Die aktuellste Version wurde am 05.01.2013 von Redakteurnemored gespeichert.
  Versionen Versionen