Users Awaiting Email Confirmation
[C++] Adressen und Operatoren
Hi, ich habe mir ein C++ Tutorial geholt und nach anfänglichen "Schwierigkeiten" hats endlich gefunkt!(oder besser gesagt ich habe angefangen, weil ich ein paar Sachen nicht verstanden habe)
Bis zu diesen 2 Punkten lief auch alles gut, bis ich zum Punkt |&! Operator etc. kam.
Ich habe es übersprungen, da ich es irgendwie Sinnlos fand, aber jetzt kommt das schlechte Gewissen, also:
1.Braucht man diese Operatoren(lustiges Wort) wirklich, wenn ja wofür?
2.Außerdem wüsste ich nochwie genau Addressen funktionieren, erklärt mir also bitte das hier(ist kopiert):
Kapitel 8
Nun geht es etwas weiter bei den Variablen. Wir lernen andere Arten von Variablen kennen - nämlich Zeiger und Referenzen. Die sind uns dann bei Funktionen ganz nützlich, denn damit können wir Speicher direkt manipulieren. Vielleicht wird es dir nicht auf Anhieb klar, warum Zeiger an einer bestimmten Stelle verwendet werden. Das wirst du aber noch mitkriegen auf deiner Programmierer-Karriere.
Zeiger
Kurze Wiederholung aus Kapitel 2:
Speicher
Speicher gibt es in absolut jedem Computer. Er dient natürlich dazu, sich Daten/Informationen zu merken. Variablen (und ein Teil von Konstanten) stellen solche Daten/Informationen dar. Dazu legt der Computer an einem bestimmten Ort - der Adresse - diese Informationen ab. Ein Programm mit Variablen muss sich zwangsläufig darum kümmern, dass das System bzw. das Betriebssystem ihm den erforderlichen Speicher zur Verfügung stellt.
Ein Computer kann immer nur so viel Speicher adressieren - d.h. ansprechen - wie er konzipiert ist. Ein 16-Bit System/Betriebssystem kann nur 65536 Byte adressieren - gerade mal ~65 KByte. Mit 32 Bit-Systemen ist schon einiges mehr möglich, denn ein solcher Computer kann bis 4294967296 Byte ansprechen - das entspricht 4 Gigabyte Speicher. Oft sind Mainboards aber auf 2 oder 3 Gigabyte begrenzt wegen fehlender RAM-Slots. Kommende bzw. derzeitige 64-Bit-Monsterrechner könnten theoretisch bis 264 Byte, also 18446744073709551616 Byte oder 16 Terabyte ansprechen!!!
Die Adresse kann so angegeben werden (auf ein 32 Bit-System bezogen): An Speicherstelle 01010101 10101010 00110011 01101100 ist der Wert 01101011 gespeichert. Das ist ein bischen umständlich und deswegen nimmt man einfach andere Zahlensysteme. Für Adressen hat sich das Hexadezimalsystem etabliert und für die Werte nimmt man das Dezimalsystem. In diesem Beispiel würde an der Adresse 55 AA 33 6C der Wert 107 stehen.
Normale Variablen dienen dem Hauptzweck, Werte zu speichern. Mit Zeigern ist das etwas anders: Zeiger beinhalten Adressen aus dem Speicher eines Computers. Die Größe in Byte einer Variable hängt immer davon ab, welchen Datentyp du einsetzt, während Zeiger immer so groß sind, wie das System unterstützt.
Ich habe zwar binär System verstanden, aber ich weiß nicht GENAU wie die anderen funktionieren (ich gestehe, das binär System hat mir mein kleiner Bruder erklärt)
Danke im Vorraus!