7.2 Variablen deklarieren
 
Bevor Sie Variablen verwenden können, müssen diese deklariert sein. Die Syntax einer solchen Deklaration sieht wie folgt aus:
typ name;
Der typ der Variablen gibt vor, wie viel Speicherplatz diese Variable auf dem System belegt. Der name ist der Bezeichner, mit dem Sie auf diese Variable im Programm zugreifen können. Dieser name muss innerhalb eines Anweisungsblocks eindeutig sein. Außerdem sollte dieser Name selbsterklärend gewählt werden.
Wie Sie Datentypen in der Praxis 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. Ein Listing dazu:
/* 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 Namen a, b und c deklariert. Die Auswahl der Namen bleibt dabei Ihnen überlassen. In kleinen Programmbeispielen ist die Verwendung so genannter sprechender Namen für Variablen 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 Programmen 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 (wird auch Zuweisungsoperator genannt).
Achtung Um Irritationen zu vermeiden, sollen die unterschiedlichen Bedeutungen der Begriffe »Deklaration« und »Definition« erläutert werden. Häufig hat es den Anschein, als bedeuteten beide dasselbe. Dies trifft jedoch nicht zu. Erst wenn bei einer Variablen-Deklaration eine Initialisierung vorgenommen wird, handelt es sich um eine Definition.
|
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(). printf("Der Wert von int a= »bis hierhin nichts Neues« %d »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 anstatt %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 des Hochkommas befindet sich jetzt der Variablen-Name 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.
 Hier klicken, um das Bild zu Vergrößern
Abbildung 7.1
Der Ablauf der Funktion printf()
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;
}
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 bei int b und int c geschehen. 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.
7.2.1 Erlaubte Bezeichner
 
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 bedeutend. Obgleich viele Compiler auch zwischen mehr Zeichen unterscheiden können. |
Die reservierten Schlüsselworte in C dürfen logischerweise auch nicht als »Bezeichner« verwendet werden. Hier ein Überblick der reservierten Schlüsselwörter in C:
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üsselworte, die hier nicht fett dargestellt wurden, sind erst bei den neueren Compilern (C99) vorhanden. Aber es empfiehlt sich, diese dennoch nicht zu verwenden, falls sie bei Ihrem Compiler noch nicht implementiert sind.
|