Wir setzen Variablen





Unter C ist es zwingend Notwendig alle Objekte vor ihrer Benutzung zu deklarieren.
Diese Deklaration findet in einer Form statt, in der Sie am Anfang des Programmes Variablen setzen. Variablen in Form von Feldern, Tabellen und Strings können eine maximale Datenmenge von 65.535 Bytes aufweisen. Aber keine Sorge, dies reicht in den meisten Fällen aus. Schließlich wurde Linux auch unter C Programmiert.
Eine Variable ist eine Speicherstelle, die einen Namen, Typ  und Wert besitzt. Der Wert einer Variablen kann während des Programmablaufs ständig geändert werden.

Beispiel:

 Int beispiel=12;
 (Programmcode)
 beispiel=5;

Dieser Beispiel zeigt, wie komfortabel der Wert einer Variable verändert werden kann.
Wie schon am Anfang erwähnt, müssen alle Variablen vor ihrer Benutzung deklariert werden.

Beispiel:

 Typ Name = Wert

Es ist nicht zwingen notwendig den Wert einer Variablen schon bei ihrer Deklaration zu setzen. Dies kann immer noch im Verlauf des Programmes passieren.

Typ:

Sie können aus einer weit ausgedehnten Palette an Typen ihre Wahl treffen.
Die nachfolgende Tabelle zeigt Ihnen die wichtigsten Variablen, die Sie im Normalfall benutzen können. Der größte Unterschied zwischen verschiedenen Typen besteht in der Regel in der Größe des reservierten Speicherbereiches.

Tabelle:
 
 
auto break case char const continue
default do double else enum extern
float for goto if int long
register return short signed sizeof static
struct switch typedef union unsigned void
volatile while

 

Name:

Sie können fast alle Bezeichnungen, die Ihnen Einfallen benutzen. Es gibt jedoch einige reservierte Namen. Eine Liste der reservierten Namen können Sie aus dieser Datei entnehmen.
Sie können jedoch 2 "reservierte" Namen zusammengefasst benutzen. "autounion" ist ebenso erlaubt, wie "forum".
Beachten sie bitte, daß C zwischen groß und klein Schreibweise unterscheidet. Sie erhalten also einen Fehler, wenn Sie die Variable "Test" deklarieren und später die Variable "test" einsetzen wollen.
Beachten Sie es bitte, da dies eine sehr häufige Ursache für Fehler ist.

Bei der Deklaration ihrer Variablen können Sie diese entweder einzeln deklarieren,

 int name1;
 int name2;
 

oder Sie fassen sie zusammen

 int name1, name2;
 
 

Gültigkeitsbereich der Variablen
 

Wir unterscheiden in einem Programm 2 Arten von Variablen. Diese werden durch einen Gültigkeitsbereich definiert.
Variablen, die außerhalb von Funktionen vereinbart wurden, sind von allen Funktionen ansprechbar und heißen deshalb globale Variablen. Eine Globale Variable steht in der Regel am Anfang des Programmes, bei der Definition von Funktionen.

Beispiel:

 void funktion1();
 int variable; /* GLOBALE VERIABLE

Eine weitere Art von Variablen stellen die lokalen Variablen dar. Diese werden in einer Funktion definiert und sind deshalb nur dort gültig. Lokale Variablen müssen gleich nach der sich öffnenden Klammer ({) in einer Funktion deklariert werden.

Beispiel:

 void funktion1()
 {
 int localevariable;
 ....

Um einer Variable einen Wert zuzuweisen, wird der Zuweisungsoperator = Verwendet.

Beispiel:

 int variable = 12;
 

Variablenarten

Variablen belegen eine bestimmte Größe des Speichers. Jede Speicherstelle kann daher Zahlen und Zeichen aufnehmen. Aus diesem Grund müssen wir auch bei der Definition der Variablen, die Maximalgröße mit einplanen. Dies geschieht durch die Bestimmung verschiedener der Variablenart.
Die nachfolgende Tabelle zeigt ihnen die möglichen Arten von Variablen:
 
 
 
Art
von
bis
 
  char
-128
+127
 
  unsigned char
0
255
 
  int 
-32768
32767
 
  unsigned int 
0
65565
 
  short
-32768
32767
 
  unsigned short
0
65565
 
  long
-2147483648
2147483647
 
  unsigned long
0
4294967295
 
  float
3.4E-38
3.4E+38
 
  double 
1.7E-308
1.7E+308

 
 
 
 

Konstanten

Eine weitere Art von Variablen, stellen die Konstanten dar.  Diese besitzen einen sehr Großen Vor- und Nachteil. So belegen Konstanten keinen Speicherplatz. Ein gravierender Nachteil ist aber, daß diese wärend der Ausführung des Programmes nicht verändert werden können.
Konstanten werden mit dem #define-Befehl am Anfang des Programmes definiert.

Beispiel:

 #define FESTEZAHL=13
 

Sie sollten Konstanten immer dann verwenden, wenn Sie in Ihrem Programm eine Zahl haben, die immer gleich bleibt. Das ermöglicht Ihnen eine sehr schnelle und einfache Sourceänderung.
Es hat sich in der Vergangenheit eingebürgert für Konstanten Großbuchstaben zu verwenden, damit sie besser von Variablen unterschieden werden können.
 

Zeichenvariablen

Wo wären wir denn hingekommen, wenn wir nur Zahlen in eine Variable definieren könnten. Natürlich können auch Zeichenketten, so genannte Strings, in eine Variable gelegt werden.
Variablen, die als char definiert wurden, haben die Funktion, die Aufnahme von Zeichen.
Damit Zeichen als solche erkannt werden, müssen sie in ein Hochkomma eingeschlossen werden.

Beispiel:

 char kette[] = "Hier sehen Sie eine Zeichenkette";
 
 
 

Programmbeispiel:

Dieser Beispiel zeigt Ihnen die Verwendung und Gültigkeitsbereiche von Variablen. Zusätzlich sehen Sie, wie Operatoren unter C verwendet werden können. Mehr über Operatoren erfahren Sie in der nächsten Lektion.

Wie funktioniert dieses Beispiel?
Als erstes Deklarieren wir die beiden Prozeduren (prozedur1, prozedur2). Der nächste Schritt besteht darin, die globalen Variablen zu setzen. So wird mit dem Befehl int Variable=2 der Variable "Variable" ein Wert von 2 zugewiesen.
Als nächstes Deklarieren wir noch die Variable "ergebnis".
Nun startet unser Programm mit dem Aufruf des Subprogrammes prozedur1, in dem er der loaklen Variable "ZAHL" einen Wert von 12 zuweist. Dieser Wert ist nur in dem Subprogramm "prozedur1" gültig. Nach verlassen des
Unterprogrammes "vergisst" das Programm den Wert.
Wir folgen aber weiter unserem Programmablauf.
Nachdem die Lokale Variable deklariert wurde, setzen wir der Variable "ergebnis" einen neuen Wert. Dieser setzt sich aus folgender Formel zusammen:
ergebnis = Variable + ZAHL
Es bleibt nur noch die Ausgabe und das Programm kann wieder in die Hauptroutine zurückkehren.
In dieser wird die prozedur2 ausgeführt.
Das will ich Ihnen jedoch nicht erklären, da die Struktur von "prozedur2", der Struktur von "prozedur1" gleicht.
 
 
 

Programmlisting:

#include <stdio.h>
void prozedur1();
void prozedur2();
int Variable=2;                                  /* Der Variable "Variable" wird ein Wert von 2 Zugewiesen (global) */
int ergebnis;                                    /* Variable "ergebnis" wird deklariert */

main()
        {
        prozedur1();                             /*Aufruf der Prozedur "prozedur1" */
        prozedur2();                             /*Aufruf der Prozedur "prozedur2" */

        }

void prozedur1()

        {
        int ZAHL=12;                             /* Der Variable "ZAHL" wird ein Wert von 12 Zugewiesen (lokal) */
        ergebnis = Variable + ZAHL;          /*Eine einfache Rechnung */
        printf("%ld + %ld = %ld\n", ZAHL , Variable , ergebnis); /*Die Ergebnisse werden ausgegeben */
        }

void prozedur2()
        {
        int ZAHL=211;                    /* Der Variable "ZAHL" wird ein Wert von 211 Zugewiesen (lokal) */
        ergebnis = Variable + ZAHL;  /*Eine einfache Rechnung */
        printf("%ld + %ld = %ld\n", ZAHL , Variable , ergebnis); /*Die Ergebnisse werden ausgegeben */

        }
 

Nächster Themenbereich:
Operatoren
DEMON