Variablen und Datentypen sind grundlegende Konzepte in der Programmierung, die eng miteinander verbunden sind. Hier ist eine kurze Erklärung:
Variablen sind wie Container, die Daten speichern. Sie haben einen Namen und können während der Laufzeit des Programms geändert werden.
- In Programmiersprachen werden Wertebereiche und darauf definierte Operationen zu Datentypen zusammengefasst.
- Elementare Datentypen, sind Standarddatentypen (also in allen Sprachen verfügbar) sind Ganzzahlen, Kommazahlen, Zeichenketten und boolesche Werte.
- Es gibt auch zusammengesetzte Datentypen wie benutzerdefinierte Klassen, Arrays und Listen.
Dabei ist zu bedenken das wir zwischen Werttypen und Verweistypen unterscheiden.
Verweistypen
Verweistypen sind eine Art von Datentypen in Programmiersprachen wie C#, die Verweise auf Daten speichern, anstatt die Daten selbst zu enthalten. Hier sind einige wichtige Punkte zu Verweistypen:
- Variablen von Verweistypen speichern die Verweise auf Ihre Daten (z.B. Objekte).
- Beispiele für Verweistypen sind Strings, Array (auch wenn die einzelnen Elemente Werttypen sind), Klassentypen und Delegaten.
- Verweistypen können den Wert „null“(ohne „“) annehmen
Verweistypen sind z.B. Strings, Objekte, interface, delegate oder record.
Objekte können Array, Auflistungen oder Klasseninstanzen sein. So enthält z.B. eine Variable eines Klassenobjektes ein Verweis auf der Adresse des Objektes im verwalteten Heap. Dadurch sind Verweistypen besonders nützlich wenn es darum geht. komplexe Datenstrukturen zu erstellen und manipulieren.
Was ist ein HEAP
Ein Heap (auf deutsch Haufen oder Halde) ist eine Datenstruktur, welche besonders für das Sortieren oder als Prioritätswarteschlange eignet. Zudem ermöglicht ein Heap das Sammeln und Laden von Informationen sowie für eine dynamische und flexible Speicher Verwaltung. Ein Heap besitzt eine Hierarchische Struktur, arbeitet also nicht nach dem LIFO-Prinzip (Last In First Out) wie ein STACK. Entsprechend werden Heaps oft als Baumstruktur oder Array dargestellt.
Bei c# ist ein String ein Verweistyp, intern wird der Text in C# als sequenzielle, Schreibgeschütze Sammlung von Char Objekten gespeichert. Anders als in anderen Sprachen (wie z.B. C und C++), wird bei C# kein abschließendes Nullzeichen am ende des String gesetzt und kann beliebig viele Nullzeichen beinhalten („\0“).
Werttypen
- Variablen von Werttypen enthalten Ihre Werte direkt.
- Beispiele von Werttypen sind numerische Datentypen, Boolean, Char, Date, Strukturen (auch wenn ihre Member Verweistypen sind) sowie Enumerationen.
Ich nenne hier mal einige Datentypen (Werttypen) der Programmiersprache C#:
bool | 1 byte | true(1) oder false(0) |
byte | 1 byte | 0-255 |
char | 2 byte | Ein Unicodezeichen |
decimal | 16 byte | -7,9*1028 bis 7,9*1028 |
double | 8 byte | -1,7976931348232*1030 – 1,7976931348232*1030 |
float | 4 byte | -3,402823*1038 – 3,402823*1038 |
int | 4 byte | -2.147.483.648 – 2.147.483.647 |
long | 8 byte | -9.223.372.036.854.775.808 – 9.223.372.036.854.775.8 |
sbyte | 1 byte | -128 – 127 |
short | 2 byte | -32.768 – 32.767 |
uint | 4 byte | 0 – 4.294.967.295 |
ulong | 8 byte | 0 – 18.446.744.073.709.551.615 |
ushort | 2 byte | 0 – 65.535 |