Referenz - Stern
Syntax A: Wert = Ausdruck1 * Ausdruck2
Syntax B: Ausdruck1 *= Ausdruck2
Syntax C: *{Pointervariable | Pointerfunktion} [ = Ausdruck ]
Typ: Operator
Kategorie: Operatoren
Das Stern-Zeichen kann in FreeBASIC zur Multiplikation (Syntax A und B) und zur Pointer-Dereferenzierung (Syntax C) eingesetzt werden. Bei Syntax B handelt es sich um eine kombinierte Multiplikation; dies ist die Kurzform für
Ausdruck1 = Ausdruck1 * Ausdruck2
Multiplikation
Wert = Ausdruck1 * Ausdruck2
Ausdruck1 *= Ausdruck2
In dieser Form eingesetzt bewirkt der Stern die Multiplikation zweier Argumente; der Rückgabewert ist das Produkt der beiden Argumente. Die Argumente dürfen Zahlen, numerische Konstanten, numerische Variablen, und numerische Rückgabewerte von Funktionen sein. Die Multiplikation ist die Gegenfunktion der Division.
Die Multiplikation kann mithilfe von OPERATOR überladen werden.
Beispiel 1:
DIM n AS DOUBLE
n = 4 * 5
PRINT n
SLEEP
Ausgabe:
20
Beispiel 2:
DIM n AS DOUBLE
n = 6
n *= n
PRINT n
SLEEP
Ausgabe:
36
Pointer-Dereferenzierung
*{Pointervariable | Pointerfunction} [ = Ausdruck ]
Durch die Pointer-Dereferenzierung wird auf einen Wert im Speicher zugegriffen, auf den ein Pointer zeigt. Der Zugriff kann sowohl zum Lesen als auch zum Schreiben erfolgen. Der 'Indirection-Level' kann unendlich groß sein. (Pointer auf einen Pointer auf ...) Um sinnvoll eingesetzt werden zu können, müssen die Pointer, mit denen * verwendet wird, auf eine sinnvolle Adresse zeigen. Zahlenwerte sind dafür nicht vorhersagbar, die Adressen müssen auf anderem Wege ermittelt werden, siehe dazu Pointer.
Beispiel:
' Zugriff auf einen Pointer mittels *
DIM a AS INTEGER
DIM pa AS INTEGER PTR
' @ wird benutzt, um pa auf a zeigen zu lassen.
' 'a' ist in diesem Fall eine normale Integer-Variable:
pa = @a
a = 9 ' 'a' erhält den Wert 9.
' Den Wert mittels seiner Adresse anzeigen:
PRINT "Der Wert von 'a' ist"; *pa
' An die Adresse des Pointers einen neuen Wert schreiben:
*pa = 1
' Den neuen Wert von 'a' anzeigen:
PRINT "Der neue Wert von 'a' ist"; a
Ausgabe:
Der Wert von 'a' ist 9
Der neue Wert von 'a' ist 1
Unterschiede zu QB:
- Kombinierte Operatoren sind neu in FreeBASIC.
- Pointer-Dereferenzierung ist neu in FreeBASIC.
Siehe auch:
At (@), Pointer, mathematische Funktionen
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|