C-Tutorial Kapitel 3


Aus Wirthi's Wiki

Wechseln zu: Navigation, Suche
C-Tutorial
Allgemeines
Kapitel 1 (Einleitung)
Kapitel 2 (Blöcke)
Kapitel 3 (Daten)
Kapitel 4 (Kontrollanweisungen)
Kapitel 5 (Ein- und Ausgabe)
Kapitel 6 (Unterprogramme)
Kapitel 7 (Felder und Strukturen)
Kapitel 8 (Zeiger)

Im 3. Kapitel werden Variablen und Datentypen behandelt.

[bearbeiten] Variablen

Eine Variable ist ein Synonym (=anderer Name) für eine Speicherstelle in einem Computer. Einfacher gesagt, eine Variable bietet Raum, um Daten (z.B. eine Zahl) zu speichern und wieder zu lesen. Dieser "Raum" wird im Hauptspeicher (RAM) des Computers angelegt.

[bearbeiten] Datentypen

Der Datentyp einer Variable gibt an, wie viele Daten diese Variable enthalten kann, und welcher Art die Daten sind. So ist es zum Beispiel möglich, in eine Variable vom Typ int eine Zahlen zwischen ca. -32000 und +32000 einzutragen. In einer Char-Variable können Sie alle möglichen DOS-ASCII-Zeichen speichern (alles, was Sie mit der Tastatur erzeugen können).

ACHTUNG: Da C platformunabhängig ist, hängt die Größe eines Datentypes von der genutzten Hardware und dem Compiler ab!

[bearbeiten] Ganze Zahlen: INTEGER

In Variable dieses Types können Sie ganze Zahlen abspeichern, also z.B. 1, 2, 100, 12345. Unter dem DOS-Turbo C(++) Compiler kann eine Int Zahl zwischen -32000 und +32000 groß sein.

[bearbeiten] Gleitkommazahlen: FLOAT, DOUBLE

In einer Gleitkomma-Variable können Kommazahlen gespeichert werden, z.B. 3.141592654. Float reicht reicht für die meisten Kommazahlen. Werden jedoch noch höhere Genauigkeiten benötigt, kommt der Datentyp double zum Einsatz.

[bearbeiten] Zeichen: CHAR

In einer char-Variable können Sie Zahlen zwischen -127 und +128 abspeichern. Dieser Datentyp wird jedoch meist für ASCII-Zeichen genutzt (für den Computer ist es ja egal, ob sich eine Zahl oder ein Zeichen in der Variable "befindet", er speichert "alles" in Form von binären Ziffernfolgen). Dabei darf man eines nicht vergessen: Es macht einen großen Unterschied, ob man in einer char Variablen das Zeichen "1" (ASCII-Zeichen Nr. 49) abspeichert, oder die Zahl 1 (entspricht Hardware-technisch ASCII-Zeichen Nr. 1). Man kann zwar mit beiden rechnen, aber "1" * 2 ergibt nicht "2", sondern "b" (ASCII-Zeichen Nr. 98)!

[bearbeiten] Zeichenketten: STRING

Bei Strings handelt es sich um Wörter und Sätze, die aus einzelnen Zeichen gebildet werden. Jede Ausgabe auf dem Bildschirm funktioniert mittels Strings. Wie dieser Datentyp genau funktioniert, erfahren Sie im Kapitel besondere Datentypen.

[bearbeiten] Wahrheitswerte: BOOLEAN

Dieser Typ kann nur zwei Werte annehmen: "TRUE" und "FALSE". Dabei handelt es sich um logische (boolsche) Werte (deutsch: "wahr" oder "falsch"). Man kann damit logische Vergleiche machen (siehe Kaptitel 3). C hat dafür keinen eigenen Datentyp, sondern es können int und char dafür verwendet werden. Hat die jeweilige Variable den Wert 0, so ist sie FALSE, sonst (ungleich 0) ist sie TRUE.

HINWEIS: In Zukunft werden ich oft 1 als Synonym für "ungleich 0" verwenden. Bitte beachten Sie jedoch, das eine Variable, die TRUE ist, nicht unbedingt den Wert 1 haben muß. Sie muß lediglich ungleich 0 sein!

[bearbeiten] Anlegen von Variablen

Um eine Variable verwenden zu können, müssen Sie sie zuerst vereinbaren ("erzeugen", "bekannt machen"). Dies geht ganz einfach: Schreiben Sie zuerst den Datentyp, dann den Namen der Variablen. Zum Schluß kommt noch der Strichpunkt. Und nicht vergessen, C ist "case-sensitive", d.h. der Datentyp muß klein geschrieben werden.

int Zahl1, Zahl2;
char Zeichen;

void main(void)
{
  float gleitZahl1;
  // Anweisungen
}
Erklärung
  • In einer Zeile können auch mehrere Variablen gleichen Types vereinbart werden, wenn man einen Beistrich dazwischen setzt.
  • Variablen können in jedem "Block" vereinbart werden. Siehe Gültigkeitsbereiche.

[bearbeiten] Zuweisungen

Im man kann einer vereinbarten Variable nun Werte zuweisen. Dazu schreibt man zuerst den Variablennamen, ein Gleichheitszeichen "=" und anschließend den zuzuweisenden Ausdruck.

void main(void)
{
  int Zahl1, Zahl2=12;
  char Zeichen1="A".

  Zahl1=52;
  Zeichen1=Zeichen1+1; 
}
Erklärung dieses Programms
  • Zuerst werden 3 Variablen angelegt (Zahl1, Zahl2, Zeichen1).
  • Zahl2 wird gleich bei der Vereinbarung der Wert 12 zugewiesen (Ja, auch das ist möglich).
  • "Zahl1=52;" - Hier wird der Variablen Zahl1 der Wert 52 zugewiesen. Ist doch ganz einfach!
  • Zeichen1 wir um 1 erhöht. Da in der Variablen "A" gespeichert ist, gibt es ein keines Problem. Was ist "A" + 1 ? Aber wer brav aufgepasst hat, weiß das schon. "A" entspricht der Zahl 65, und 65 + 1 ist 66. Nun ist in der Variablen Ziffer1 der Wert 66 abgespeichert, was wiederum dem ASCII-Zeichen Nr. 66 entspricht, welches "B" ist. Verstanden?

[bearbeiten] Zuweisungen bei FLOAT

Das funktioniert genau wie normale Zuweisungen. Nachkommastellen werden entsprechend dem englischen System durch einen Punkt abgegrenzt.

.....
floatVariable=3.14;
....

[bearbeiten] Zuweisungen bei BOOLEAN

Wie bereits erwähnt, besitzt C keinen logischen Datentyp. Es müssen also int oder char dafür genutzt werden. Die Zuweisung entpricht der Standard-Zuweisung. Wird der Wert 0 zugewiesen, dann ist die Variable FALSE, ansonsten ist Sie TRUE.

.....
intVariable:=123;  //entspricht in Pascal:  boolVariable:=true;
intVariable:=1;    //entspricht in Pascal:  boolVariable:=true;
intVariable:=0;    //entspricht in Pascal:  boolVariable:=false;
.....

[bearbeiten] Vergleiche

Sie können Werte miteinander vergleichen. Das geschieht mit einem der folgenden Zeichen mit den normalen mathematischen Regeln: == ("ist gleich"), != ("ist nicht gleich"), < ("ist kleiner"), <= ("ist kleiner oder gleich"), > ("ist größer"), >= ("ist größer oder gleich"). Als Ergebnis bekommen Sie einen logischen Ausdruck in Form einer int-Zahl.

.....
intVariable= Zahl1<=Zahl2;
.....
Beschreibung
  • intVariable ist ungleich 0 (=TRUE), wenn Zahl1 kleiner oder gleich Zahl2 ist. Ist Zahl1 jedoch größer als Zahl2, dann wird intVariable der Wert 0 (FALSE) zugewiesen.

[bearbeiten] Konstaten

Konstanten sind Werte, die nach dem Compilieren nicht mehr geändert werden können. Sie werden wie Variablen verwenden, die nicht beschrieben, sondern nur gelesen werden können. Ein typischen Beispiel dafür ist die Zahl PI. Diese hat einen fixen Wert (rund 3,141592654), niemand würde in der realen Welt versuchen, ihr einen anderen Wert zuzuweisen. Würde man PI jedoch wie eine normale Variable anlegen, wäre dies ohne weiteres möglich. Um dies zu verhindern, gibt es die Konstaten:

void main(void)
{
  const pi=3.141592
}

Wichtig dabei ist, dass man Konstaten nur bei der Vereinbarung einen Wert zuweisen kann.

[bearbeiten] Gültigkeitsbereiche

Jede Variable ist nur in dem Block gültig, in dem Sie vereinbart wurde, und in allen darunterliegenden. Globale Variablen (solche, die außerhalb eines Blockes vereinbart wurden, also vor main) sind im gesamten Programm gültig.

In C können mehrere Variablen den gleichen Namen haben, solange eindeutig ist, welche in welchen Block gültig ist. Dabei gelten folgende Regeln:

  • Globale Variablen gelten überall.
  • Wird in einem Unterprogramm wie z.B. main eine Variable gleichen Namens angelegt, gilt ab hier bis zum Ende des Blockes (main) nicht mehr die globale Variable, sondern die von main.
  • Das Spiel kann man weiterspielen: wird in einem Unter-Block von Main wieder eine "gleiche" Variable angelegt, gilt diese, und nicht die von main (und schon garnicht die globale :-) ).
Allgemeines - Kapitel 1 - Kapitel 2 - Kapitel 3 - Kapitel 4 - Kapitel 5 - Kapitel 6 - Kapitel 7 - Kapitel 8

Persönliche Werkzeuge