Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 << zurück
C von A bis Z von Jürgen Wolf
Das umfassende Handbuch für Linux, Unix und Windows
– 2., aktualisierte und erweiterte Auflage 2006
Buch: C von A bis Z

C von A bis Z
1.116 S., mit CD, Referenzkarte, 39,90 Euro
Galileo Computing
ISBN 3-89842-643-2
gp Kapitel 7 Elementare Datentypen
  gp 7.1 Der Datentyp int (Integer)
  gp 7.2 Variablen deklarieren
    gp 7.2.1 Erlaubte Bezeichner
  gp 7.3 C versus C++ bei der Deklaration von Variablen
  gp 7.4 Der Datentyp long
  gp 7.5 Der Datentyp short
  gp 7.6 Die Gleitpunkttypen float und double
    gp 7.6.1 Gleitpunkttypen im Detail
    gp 7.6.2 float im Detail
    gp 7.6.3 double im Detail
    gp 7.6.4 long double
    gp 7.6.5 Einiges zu n-stelliger Genauigkeit
  gp 7.7 Numerische Gleitpunktprobleme
  gp 7.8 Der Datentyp char
  gp 7.9 Nationale contra internationale Zeichensätze
  gp 7.10 Vorzeichenlos und vorzeichenbehaftet
  gp 7.11 Limits für Ganzzahl- und Gleitpunktdatentypen
  gp 7.12 Konstanten
    gp 7.12.1 Ganzzahlkonstanten
    gp 7.12.2 Gleitpunktkonstanten
    gp 7.12.3 Zeichenkonstanten
    gp 7.12.4 String-Literale (Stringkonstante)
  gp 7.13 Umwandlungsvorgaben für formatierte Ein–/Ausgabe


Galileo Computing - Zum Seitenanfang

7.2 Variablen deklarieren  downtop

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.

Abbildung
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.


Galileo Computing - Zum Seitenanfang

7.2.1 Erlaubte Bezeichner  toptop

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:

gp  Ein Bezeichner darf aus einer Folge von Buchstaben, Dezimalziffern und Unterstrichen bestehen. Einige Beispiele:
    var8, _var, _666, var_fuer_100tmp, VAR, Var
       
gp  C unterscheidet zwischen Groß- und Kleinbuchstaben.
    Var, VAr, VAR, vAR, vaR, var
       
    Hierbei handelt es sich jeweils um verschiedene Bezeichner.
       
gp  Das erste Zeichen darf keine Dezimalzahl sein.
gp  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.

 << zurück
  
  Zum Katalog
Zum Katalog: C von A bis Z
C von A bis Z
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-Programmierung


Zum Katalog: C/C++






 C/C++


Zum Katalog: UML 2.0






 UML 2.0


Zum Katalog: Reguläre Ausdrücke






 Reguläre Ausdrücke


Zum Katalog: Linux






 Linux


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de