In diesem Artikel dreht sich alles um Zahlen in der Programmiersprache C++. Wir werfen einen Blick auf Ganzzahlen (int) und auf Gleitkommazahlen (float und double). Außerdem wird auf Variablen eingegangen, mit denen wir beginnen werden.
Variablen
Bei Variablen handelt sich um benannte Speicherplätze für Werte. Dadurch können beispielsweise Zahlen gespeichert werden, um sie zu einem späteren Zeitpunkt verwenden zu können.
Für die Wahl des Variablennamens muss folgendes beachtet werden:
- Es wird zwischen Groß- und Kleinschreibung differenziert.
- Die Verwendung von Schlüsselwörtern ist nicht erlaubt.
- Der Variablenname beginnt mit einem Groß-, einem Kleinbuchstaben oder einem Unterstrich.
- Hinsichtlich der übrigen Zeichen sind Groß- oder Kleinbuchstaben, sowie Ziffern und Unterstriche erlaubt.
Zuweisung, Definition, Initialisierung
Mithilfe des Zuweisungsoperators = wird ein Wert einer Variable zugewiesen. In C++ ist es darüber hinaus zwingend erforderlich, den Datentyp anzugeben. Im folgenden Beispiel wird die Ganzzahl 38 (Datentyp int) der Variable age zugewiesen:
int age = 38;Hier wird die Variable age definiert. d.h. sie wird angelegt (es wird Speicherplatz reserviert). Darüber hinaus findet eine Initialisierung statt, denn die Variable erhält bei der Bereitstellung einen Anfangswert. Bevor ein Zugriff auf eine Variable erfolgt, sollte immer eine Initialisierung erfolgen. In Code-Editoren oder Entwicklungsumgebungen erhältst du einen Warnhinweis, falls keine Initialisierung erfolgte.
Bei der gezeigten Definition handelt es sich zugleich um eine Deklaration. Mit Deklaration ist gemeint, dass die Variable bekannt gemacht wird (Festlegung von Name und Datentyp).
Es ist auch möglich, in einer Zeile mehrere Variablen zu definieren:
int x = 102, y = 44, z = 2314;Um eine Variable unveränderbar (immutable) zu machen, mithin eine Konstante zu definieren, wird const vorangestellt:
const int x = 100;Nachfolgendes Beispiel zeigt die Funktion main(), in der eine Definition (und Initialisierung) erfolgt. Außerdem wird der zugewiesene Wert in der Konsole ausgegeben:
#include <iostream>
int main()
{
int age = 30;
std::cout << age;
}Für die Ausgabe wird cout aus der Standardbibliothek std verwendet. Die Variable age wird mithilfe von << in den Ausgabestrom cout geschoben. Durch die Einführung von using namespace std; können wir uns übrigens Tipparbeit sparen, denn dadurch muss cout kein std:: vorangestellt werden:
#include <iostream>
using namespace std;
int main()
{
int age = 30;
cout << age;
}Integer
Im gezeigten Beispiel wurde der Datentyp int (Integer) für Ganzzahlen eingeführt. Neben int gibt es noch short, long und long long. Diese Datentypen unterscheiden sich hinsichtlich ihrer Größe in Bytes und ihres Wertebereichs. Bei int geht der typische Wertebereich von −2 147 483 648 bis 2 147 483 647. Die Größe in Bytes ist übrigens nicht fest vorgeschrieben, sondern plattformabhängig.
Es existieren noch die Schlüsselwörter signed (negative und positive Werte) und unsigned (0 und positive Werte), mit denen explizit gezeigt wird, ob die Datentypen vorzeichenbehaftet sind. In der Praxis ist es aber nicht üblich signed int zu schreiben. Anders sieht es mit unsigned int aus, wodurch der Wertebereich auf positive Werte begrenzt wird.
Float und Double
Wie bereits eingangs erwähnt, gibt es für Gleitkommazahlen die Datentypen float und double. Der Unterscheid besteht darin, dass double einen präziseren Werte speichert. Bei float werden Gleitkommazahlen mit einfacher Genauigkeit gespeichert, bei double werden Gleitkommazahlen mit doppelter Genauigkeit gespeichert (daher die Bezeichnung double). Der Datentyp double ist zwar präziser, verbraucht aber auch mehr Speicher. In der Regel verhält es sich so, dass in C++ double als Standard-Datentyp für Gleitkommazahlen verwendet wird.
Es gibt noch den Datentyp long double, der mindestens so präzise wie double ist, oft aber eine noch höhere Präzision aufweist. Wie präzise dieser Datentyp ist, hängt von der Implementierung ab, die sehr unterschiedlich sein kann.
auto
In C++ gibt es außerdem die Möglichkeit über den Befehl auto den Datentyp automatisch bestimmen zu lassen. Im folgenden Beispiel wird a der Wert 5.5 zugewiesen. Hinsichtlich dieses Werts verwendet auto den Datentyp double:
#include <iostream>
using namespace std;
int main()
{
auto a = 5.5; // double
cout << a;
}Operatoren
Nun wollen wir mit den Zahlen etwas anfangen, d.h. wir wollen rechnen. Dafür stehen uns die bekannten Grundrechenarten zur Verfügung:
| Operator | Operation |
|---|---|
+ | Addition |
- | Subtraktion |
* | Multiplikation |
/ | Division |
% | Ganzzahliger Restwert |
Betrachten wir folgendes Beispiel:
#include <iostream>
using namespace std;
int main()
{
int a = 5;
double b = 30.4;
auto c = 10;
double ergebnis = (a + b) * c;
cout << "Ergebnis: " << ergebnis << endl;
}Aufgrund der Klammern werden zunächst die Werte a und b addiert. Anschließend erfolgt die Multiplikation mit c, so dass als Ergebnis 354 angezeigt wird.
Mit dem Restwert-Operator % (auch: Modulo-Operator) wird bei Ganzzahlen der Restwert einer Division bestimmt. Im folgenden Beispiel erhalten wir als Ergebnis den Wert 3:
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int b = 3;
int ergebnis = a / b;
cout << "Ergebnis: " << ergebnis << endl;
}Fazit
Dies war ein kleiner Überblick über Zahlen und Operatoren in C++, der keinen Anspruch auf Vollständigkeit erhebt, aber verständlich gemacht haben sollte, welche Datentypen existieren. Außerdem wurde gezeigt, dass für Berechnungen, die aus der Mathematik bekannten Grundrechenarten zur Verfügung stehen.