Datentyp
Was ist ein Datentyp?
In der Softwareprogrammierung bezeichnet ein Datentyp den Typ des Werts, den eine Variable hat, und welche mathematischen, relationalen oder logischen Operationen auf sie angewendet werden können, ohne dass ein Fehler auftritt. Beispielsweise verwenden viele Programmiersprachen den Datentyp String (Zeichenkette) zur Klassifizierung von Text, Integer (Ganzzahl) zur Identifizierung von ganzen Zahlen und Floating Point (Gleitkommazahl) zur Bezeichnung von Zahlen mit Dezimalstellen.
Was ist ein Datentyp in der Programmierung?
In jeder Programmiersprache definiert der Datentyp, welche Operationen sicher durchgeführt werden können, um die Variable zu erstellen, zu transformieren und in einer anderen Berechnung zu verwenden. Insbesondere hat jedes Datenelement einen Typ, der dem Computer mitteilt, wie sein Wert zu interpretieren ist.
Wenn ein Datentyp also ein String ist, kann der Computer ihn als Namen einer Person oder einer Stadt, als Begrüßung und so weiter interpretieren. Handelt es sich bei den Daten jedoch um den Typ Boolean, weiß der Computer, dass sie nur einen von zwei Werten haben können: true oder false. Ebenso interpretiert der Computer ganze Zahlen und Dezimalzahlen unterschiedlich, da sie unterschiedlichen Datentypen angehören: Integer beziehungsweise Float.
Gängige Datentypen
Verschiedene Programmiersprachen unterstützen unterschiedliche Datentypen. Diese Typen ermöglichen es den in diesen Sprachen geschriebenen Programmen, Operationen mit verschiedenen Datentypen durchzuführen, diese zu manipulieren und zu verwenden, um eine korrekte, fehlerfreie Ausgabe zu erzeugen.
Die tatsächlichen Namen der Datentypen können sich zwar von Sprache zu Sprache unterscheiden, diese Datentypen sind jedoch allen Sprachen gemeinsam:
- Integer (int). Ganze Zahlen (Zahlen ohne Bruchteile).
- Beispiele: 901, -43
- Floating Point (float oder real). Bruchzahlen oder Dezimalzahlen.
- Beispiele: 433,98, 1,23E2
- Character (char). Einzelne Buchstaben, Zahlen oder Sonderzeichen (zum Beispiel Satzzeichen).
- Beispiele: A, !, &
- String (str). Eine Folge oder Kombination von Buchstaben, Zahlen oder Sonderzeichen.
- Beispiele: InformaTechTarget, Hallo!
- Boolean (bool). Wahr- oder Falsch-Werte, die eine bedingte Anweisung klären.
- Beispiel: bool InformaTechTargetisGreat = true
- Date. Ein Kalenderdatum in einem bestimmten Format, zum Beispiel JJJJ-MM-TT.
- Beispiel: 2025-04-01
- Time. Zeit in einem bestimmten Format, zum Beispiel hh:mm:ss.
- Beispiel: 18:40:04
- Nothing oder Void. Ein Code ohne Wert.
- Array. Eine Liste mit mehreren Elementen desselben Typs, die in einer bestimmten Reihenfolge aufgeführt sind; die Länge eines Arrays bezieht sich auf die Gesamtzahl der darin enthaltenen Elemente.
- Beispiel: (0, 1, 2, 3, 4, 5)
Zusätzlich zu den oben genannten Datentypen unterstützen einige Sprachen auch Datentypen wie Datetime (Datum und Uhrzeit zusammen in einem bestimmten Format), Enumerated (eine Reihe vordefinierter Werte), Long (eine lange positive oder negative Folge von Ganzzahlen) und Short (eine kurze positive oder negative Folge von Ganzzahlen).

Datentypen in C
In der C-Programmierung gibt es drei Hauptdatentypen:
- primitive Datentypen
- abgeleitete Datentypen
- benutzerdefinierte Datentypen
Primitive oder integrierte Datentypen werden zur Darstellung einfacher Datenwerte verwendet, darunter Characters, Integer, Void, Float und Double.
Abgeleitete Datentypen werden aus den primitiven Datentypen abgeleitet. Dazu gehören Arrays, Pointer und Functions. Alle drei sind wichtig, da sie Programmierern helfen, effizientere C-Programme zu erstellen.
Benutzerdefinierte Datentypen in C umfassen Structure, Union und Enum. (Diese werden im Abschnitt über benutzerdefinierte Datentypen näher beschrieben.)
Datentypen in C++
Wie C unterstützt auch C++ mehrere Datentypen:
- grundlegende Datentypen
- abgeleitete Datentypen
- benutzerdefinierte Datentypen
Wie in C speichern die grundlegenden Datentypen in C++ einfache Werte. Dazu gehören Integer, Float, Double, Character und Void. C++ enthält auch einen Datentyp Boolean.
Zu den abgeleiteten Datentypen in C++ gehören Arrays, Pointer, References und Functions. Alle vier Typen werden häufig verwendet, um den grundlegenden Datentypen zusätzliche Funktionen hinzuzufügen und komplexere Programme zu erstellen.
In C++ kann ein Datentyp in einen anderen Datentyp konvertiert werden. Dies wird als Typumwandlung bezeichnet und ermöglicht die Verarbeitung unterschiedlicher Datentypen, ohne dass die Bedeutung der Originaldaten verloren geht. Außerdem können Programmierer Schlüsselwörter, sogenannte Datentyp-Modifizierer, verwenden, um bestimmte Aspekte eines bereits vorhandenen Datentyps zu ändern, zum Beispiel seine Größe oder seinen Datenbereich.

Datentypen in Java
Java hat zwei Hauptdatentypen:
- primitive
- nicht-primitive
Es gibt acht primitive Datentypen: Byte, Short, Integer, Long, Float, Double, Character und Boolean. Byte, Short, Integer und Long speichern alle ganze Zahlen, allerdings mit unterschiedlichen Bereichen. Float und Double speichern Bruchteile, Character speichert ein einzelnes Zeichen und Boolean speichert die Werte True oder False. Ein Wert eines primitiven Datentyps kann einem anderen Typ durch Typumwandlung zugewiesen werden. Die Typumwandlung kann automatisch erfolgen, um einen kleineren Typ in einen größeren Typ umzuwandeln (zum Beispiel Byte in Short), oder manuell, um einen größeren Typ in einen kleineren Typ umzuwandeln (zum Beispiel Double in Float).
Es gibt drei nicht-primitive Datentypen: Strings, Arrays und Klassen, die sich alle auf Objekte beziehen. Aus diesem Grund werden sie auch als Referenztypen bezeichnet. Arrays und Klassen werden vom Benutzer erstellt, Strings sind in der Sprache vordefiniert. Im Gegensatz zu primitiven Datentypen können Programmierer nicht-primitive Datentypen verwenden, um Methoden aufzurufen, die bestimmte Operationen ausführen. Sie können auch nicht-primitive Datentypen mit dem Wert null definieren. Dies ist mit primitiven Datentypen nicht möglich.
Datentypen in Python
Python ist eine weitere höhere Programmiersprache, die mehrere Datentypen unterstützt. Zu den acht standardmäßig integrierten Datentypen gehören Text, Numeric, Sequence, Mapping, Set, Boolean, Binary und None.
Um einen Datentyp festzulegen, weist ein Programmierer einer Variablen einfach einen Wert zu:
x = ““Informa TechTarget rocks“ weist dem Wert ‘Informa TechTarget rocks‘ den Datentyp ‘str‘ zu.
y = 30 weist dem Wert “30“ den Datentyp “int“ zu.
z = {“New York“, “Los Angeles“, “Dallas“} weist “New York, Los Angeles, Dallas“ den Datentyp “set“ zu.
Programmierer können auch Konstruktorfunktionen verwenden, um den Datentyp anzugeben. So sehen die obigen Beispiele mit den entsprechenden Konstruktorfunktionen aus:
x = str(“Informa TechTarget rocks“)
y = int(30)
z = set((“New York“, “Los Angeles“, “Dallas“))
Python bietet auch eine Funktion namens Type, um den Datentyp eines beliebigen Objekts zu ermitteln.
Wenn also
x = 83
print(type(x))
Ausgabe
<class 'int'>
Statische Daten und schwach typisierte Daten
In den meisten Programmiersprachen haben Variablenwerte in der Regel einen statischen Typ. Die Werte dieser statischen Typen können jedoch in mehreren Variablenklassen existieren. Während einige Klassen festlegen, wie der Wert des Datentyps kompiliert oder interpretiert wird, gibt es andere Klassen, deren Werte erst zur Laufzeit mit ihrer Klasse gekennzeichnet werden.
Das Ausmaß, in dem eine Programmiersprache Typfehler verhindert oder erschwert, wird als Typsicherheit bezeichnet. Wenn eine Programmiersprache verlangt, dass eine Variable nur in einer Weise verwendet wird, die ihrem Datentyp entspricht, spricht man von einer stark typisierten Sprache. Wenn Datentypen nicht übereinstimmen – beispielsweise beim Versuch, eine Ganzzahl mit einer Zeichenkette zu multiplizieren –, verhindert eine stark typisierte Sprache wahrscheinlich die Ausführung des Programms, um potenzielle Betriebsfehler zu vermeiden.
Programmiersprachen, die es erlauben, eine Variable eines Datentyps so zu verwenden, als wäre sie ein Wert eines anderen Datentyps, werden als schwach typisiert bezeichnet. Das Programm kann zwar ausgeführt werden, aber die Dateninkongruenzen können zu Fehlern oder Abstürzen führen.
Was ist ein benutzerdefinierter Datentyp?
Ein benutzerdefinierter Datentyp ist ein Datentyp, den ein Benutzer definieren und aus einem vorhandenen Datentyp ableiten kann. Viele benutzerdefinierte Datentypen haben dieselbe interne Darstellung wie integrierte oder Quelldatentypen. Diese unterschiedlichen benutzerdefinierten Datentypen erhöhen die Anzahl der verfügbaren Datentypen, um die spezifischen Anforderungen eines Benutzers zu erfüllen.
Unterschiedliche benutzerdefinierte Datentypen können entweder stark oder schwach typisiert sein. Bei stark typisierten benutzerdefinierten Datentypen müssen Funktionen und Operatoren explizit definiert werden, da sie nicht automatisch die Funktionen und Operatoren des Quelldatentyps übernehmen. Im Gegensatz dazu funktionieren schwach typisierte benutzerdefinierte Datentypen genauso wie der zugrunde liegende Quelldatentyp. Allerdings können Benutzer bei Bedarf bestimmte Einschränkungen für die Werte schwacher benutzerdefinierter Datentypen definieren.
Benutzerdefinierte Datentypen können auch strukturiert statt unterschiedlich sein. Wie der Name schon sagt, haben strukturierte benutzerdefinierte Datentypen eine bestimmte Struktur, die in der Datenbank vordefiniert ist. Jede dieser benutzerdefinierten Datentypen enthält eine Folge von benannten Attributen sowie eine Reihe von Methodenspezifikationen. Zusätzlich zu diskreten und strukturierten Datentypen können Benutzer auch Array-Datentypen oder Zeilen-Datentypen definieren. Ein Array kann Elemente eines anderen Datentyps enthalten, und ein Zeilen-Datentyp ist eine geordnete Folge von benannten Feldern.
Viele Programmiersprachen unterstützen benutzerdefinierte Datentypen, darunter die folgenden:
- C. C unterstützt vier benutzerdefinierte Datentypen. Diese sind Structure, Enumeration (enum), Union und Typedef. Mit Structure können Benutzer Elemente unterschiedlicher Datentypen zu einem einzigen Typ gruppieren, während Enumeration nützlich ist, um benutzerdefinierte Datentypen mit einer Reihe benannter ganzzahliger Konstanten zu erstellen. Typedef wird verwendet, um vorhandene Datentypen umzubenennen, und der Datentyp Union kann Elemente unterschiedlicher Datentypen enthalten, wobei alle Mitglieder der Union an derselben Speicherstelle gespeichert werden.
- C++. C++ unterstützt fünf benutzerdefinierte Datentypen: Class, Structure, Union, Enumeration und Typedef. Ein Datentyp Class verfügt über eigene Datenelemente und Mitgliedsfunktionen. Benutzer können auf diese Funktionen in einer Class zugreifen, indem sie eine Instanz dieser Class erstellen. Die anderen vier Datentypen in C++ ähneln denen in C.
- Visual Basic for Applications (VBA). In VBA können Benutzer benutzerdefinierte Datentypen mit der Anweisung Type definieren. Diese Datentypen können einen zuvor benutzerdefinierten Datentypen, ein Array oder mehrere Elemente eines bestimmten Datentyps enthalten. Der Bereich jedes Datenelements ist immer derselbe wie der Bereich seines Datentyps.
Neben Sprachen können benutzerdefinierte Datentypen auch in einigen Datenbankmanagementsystemen (DBMS) definiert werden. Im objektrelationalen Datenbankmanagementsystem (ORDBMS) von Oracle können Benutzer beispielsweise zwei Arten von benutzerdefinierten Datentypen definieren: Objekttypen und Sammlungstypen. Ein Objekttyp ist eine templatisierte Abstraktion einer realen Entität, und ein Sammlungsdatentyp ist eine Dateneinheit, die aus einer unbestimmten Anzahl von Elementen desselben Datentyps besteht. Verschiedene Schemaobjekte können in ORDBMS auf diese benutzerdefinierte Datentypen verweisen. Durch die Definition von benutzerdefinierten Datentypen können Benutzer mit mehr Typen komplexerer Daten arbeiten, um die Anforderungen der Anwendung zu erfüllen.