-
Drachentöter
Ich weiß jetzt nicht genau was du mit "|&! Operator" meinst, aber ich kann dir den Gebrauch dieser Symbölchen erklären:
| ist ein bitweises logisches OR, verknüpft also zwei Variablen miteinander und setzt die Bit, welche bei mindestens einer der Variablen gesetzt sind.
Beispiel:
10000100 | 00000101 würde ergeben: 10000101
& ist ein bitweises AND, das gleiche wie oben, nur diesmal müssen beide Variablen die Bit gesetzt haben, damit das Resultat dieses Bit auch gesetzt hat:
10000100 & 00000101 würde ergeben: 00000100
(& hat noch andere Bedeutungen, mehr dazu weiter unten bei den Zeigern)
! ist der NOT-Operator. Wenn du also folgendes verwendest: variable != 0
dann wird geprüft, ob die Variable NICHT 0 ist.
Und ja, diese Operatoren könne unter Umständen sehr nützlich sein für dein Programm. Man sollte schon wissen was sie machen und wie man sie anzuwenden hat.
Zu den Zeigern:
Stell dir vor, du hast eine Variable "zahl" vom Typ int. Du weist nun der Variable den Wert 9 zu.
int zahl = 9;
Jetzt willst du, aus welchen Gründen auch immer, wissen, wo diese Variable im Speicher steht. Also brauchst du einen Zeiger der auf die Variable zeigt, genauer, auf die Stelle im Speicher.
Pointer werden bei der Erstellung (Definition oder Deklaration) mit * gekennzeichnet:
int* pointer;
(gern auch int *pointer geschrieben)
Hier zu beachten ist, dass du den Pointer vom gleichen Typ wie die Variable wählst. Also int* und nicht char* oder sowas.
Hier wird noch kein Speicherbereich zugewiesen, das soll sich jetzt ändern:
pointer = &zahl;
Hier dient der &-Operator dazu, die Speicherstelle der Variablen zu ermitteln. Eine Variable mit vorangestelltem &-Operator gibt also nicht den Wert der Variablen sondern die Speicherstelle der Variablen zurück.
Jetzt zeigt der Zeiger "Pointer" auf die Speicherstelle der Variablen Zahl.
Diesen Inhalt der Variable kann man jetzt auch über die Speicherstelle ändern. Man muss also nicht die genaue Variable kennen sondern es reicht die Speicherstelle (und der Typ aus):
*pointer = 4;
Mit dem *-Operator wird hier bei Pointern kenntlich gemacht, dass man nicht den pointer selbst ändern will sondern den Inhalt des Pointers, der Wert der also im Speicher steht.
Die Variable "zahl" hat von nun an den Wert 4, obwohl wir sie garnicht verändert haben. Wir haben direkt den Speicher verändert, was unter Umständen sehr hilfreich ist.
Achtung: Würde man nur pointer = 4 schreiben, würde der Pointer auf den Speicher bei Stelle 4 zeigen und höchstwahrscheinlich bei weiteren Operationen einen Speicherfehler verursachen. Vorsicht ist also geboten! Soll der Inhalt geändert werden, muss der *-Operator verwendet werden. Mit Pointern kann man sich leicht Speicherfehler bauen, wenn man sie falsch anwendet. Richtig angewendet sind sie aber eine sehr mächtige Sache um komplexe Programme erst zu ermöglichen. Du solltest dich also durchaus damit vertraut machen. (Such mal bei google nach Pointer-Tutorials bzw. Zeiger-Tutorials für C++
)
So, das wären jetzt so die absoluten Grundlagen für Pointer, ich hoffe du kannst damit was anfangen. Ansonsten such dir im Web noch andere Tutorials mit denen du vielleicht besser zurecht kommst.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln