5.3 Variablen verwenden
Wie Sie Datentypen in der Praxis verwenden, also deklarieren und mit Werten initialisieren können, soll jetzt grundsätzlich anhand des Datentyps int erläutert werden. Für andere Datentypen, die noch behandelt werden, gilt dies entsprechend. Sehen wir uns dazu ein Listing an:
/* deklarieren.c */ #include <stdio.h> int main(void) { int a; // Deklaration int b; int c; a = 5; // Initialisieren b = 100; c = 12345; printf("Wert von int a=%d ,b=%d, c=%d\n", a, b, c); return 0; }
Hier werden drei int-Variablen mit den Bezeichnern a, b und c deklariert. Die Auswahl der Bezeichner bleibt dabei Ihnen überlassen. In kleinen Programmbeispielen ist die Verwendung sogenannter sprechender Namen für Bezeichner nicht unbedingt erforderlich, dennoch empfehle ich Ihnen, aussagekräftige Namen (z. B. ZuFallsZahl, statt einfach nur z) zu verwenden. Damit behalten Sie bei größeren Projekten den Überblick.
Hier bekommt a den Wert 5, b den Wert 100 und c den Wert 12345 zugewiesen. Die Zuweisung eines Werts wird das Initialisieren einer Variable genannt. Den Wert einer Variablen übergibt man mit dem =-Operator (er wird auch Zuweisungsoperator genannt).
Folgende Schreibweisen sind dabei erlaubt:
int wert = 5; // wert=5 int wert1 = 10, wert2 = 20; // wert1=10 ,wert2=20 // wert1=nicht initialisiert, wert2=33 int wert1, wert2 = 33; int wert1; int wert2 = wert1 = 10; // wert1=10, wert2=10
Jetzt folgt die Beschreibung der Ausgabe mit printf() (siehe Abbildung 5.1).
Sicherlich ist Ihnen %d im Formatstring aufgefallen. Das Prozentzeichen ist ein Formatzeichen. Der Compiler sieht jetzt nach, um welches Format es sich dabei handelt. Im Beispiel ist es das d (für dezimal). Sie können auch das Formatzeichen %i anstelle von %d benutzen. Für einige ist das leichter zu verstehen, da das i für Integer steht. Hiermit wird also eine Ganzzahl (int) ausgegeben.
Hinter dem Ende der Hochkommata befindet sich jetzt der Variablenname a. Damit wird der Wert von int a an der Position ausgegeben, an der sich das Formatzeichen %d befindet. Gleiches geschieht mit den anderen beiden int-Werten für b und c.
Die Initialisierung dieser Werte kann aber auch noch anders bewerkstelligt werden:
/* initialisieren.c */ #include <stdio.h> int main(void) { int a=5; int b=100, c=12345; printf("Wert von int a=%d ,b=%d, c=%d\n", a, b, c); return 0; }
Abbildung 5.1 Der Ablauf der Funktion »printf()«
Wie Sie hier sehen, kann die Wertzuweisung schon während der Deklaration vorgenommen werden. Es können auch alle Werte auf einmal zugewiesen werden, wie es bei int b und int c geschehen ist. Die Werte müssen mit einem Komma getrennt werden.
Wenn eine Variable nicht mit einem Wert initialisiert wurde und Sie diese dennoch ausgeben, ist die Ausgabe des Werts undefiniert. Das heißt, es ist nicht vorhersehbar, welcher Wert ausgegeben wird.
Erlaubte Bezeichner
Im Folgenden gehe ich nochmals detaillierter auf die erlaubten Bezeichner ein. Mit dem Begriff Bezeichner werden Namen für Variablen, Funktionen, Datentypen und Makros zusammengefasst. Damit Sie bei der Namensvergabe von Variablen oder (später) Funktionen keine Probleme bekommen, müssen Sie bei deren Angabe folgende Regeln beachten:
- Ein Bezeichner darf aus einer Folge von Buchstaben, Dezimalziffern und Unterstrichen bestehen. Einige Beispiele:
-
- var8, _var, _666, var_fuer_100tmp, VAR, Var
- C unterscheidet zwischen Groß- und Kleinbuchstaben.
-
- Var, VAr, VAR, vAR, vaR, var
-
- Hierbei handelt es sich jeweils um verschiedene Bezeichner.
- Das erste Zeichen darf keine Dezimalzahl sein.
- Die Länge des Bezeichners ist beliebig lang. Nach ANSI-C-Standard sind aber nur die ersten 31 Zeichen von Bedeutung. Allerdings können viele Compiler auch zwischen mehr Zeichen unterscheiden.
Die reservierten Schlüsselwörter in C dürfen logischerweise auch nicht als Bezeichner verwendet werden. Folgende Schlüsselwörter sind in C reserviert:
auto break case char complex const continue default do double else enum extern float for goto if imaginary inline int long register restrict return short signed sizeof static struct switch typedef union unsigned void volatile while
Die Schlüsselwörter, die hier nicht fett dargestellt wurden, sind erst bei den neueren Compilern (C99) vorhanden.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.