Variablen
Variablen werden dazu genutzt Informationen aufzunehmen, um diese später wieder zu verwenden. Variablen reservieren sich bei ihrer Erzeugung einen Teil des Arbeitsspeichers, in dem der Wert gespeichert wird. Die Größe des benötigten Arbeitsspeichers ist davon abhängig, was gespeichert werden muss.
Wenn man sich eine bildliche Vorstellung davon machen möchte, könnte man den Arbeitsspeicher mit einem Tisch vergleichen. Möchte man auf diesem Tisch Getränke (zu speichernde Werte) lagern und diese einfach auf den Tisch schütten, „verlören“ sie sich auf dem gesamten Tisch und sind somit nicht mehr nutzbar. Um dies zu verhindern benötigt man Variablen. In unserem Beispiel wären dies Gläser. Wenn ich also ein Getränk auf dem Tisch lagern möchte, stelle ich erst ein Glas (Variable) auf den Tisch (Arbeitsspeicher). Dadurch ist der Platz, wo das Glas steht, für diese Glas und dessen Inhalt reserviert. Giese ich nun das Getränk (zu speichernder Wert) in das Glas (Variable), bleibt dieses solange dort gespeichert, bis man es austrinkt.
Variablen heißen Variablen, da der Inhalt den sie besitzt variabel sein kann, d.h. der Inhalt einer Variablen kann zu jedem beliebigen Zeitpunkt im Programmablauf verändert werden.
Variablendeklaration
Bevor man eine Variable verwenden kann, muss man festlegen von welchem Datentyp der Inhalt sein darf, den die Variable beinhaltet kann.
Der Datentyp bestimmt die Größe des Glases, also legt fest wie viel Arbeitsspeicher verwendet wird.
Welche Datentypen es gibt und welche Möglichkeiten diese bieten, sieht man in der Tabelle zu Datentypen von Variablen.
Eine Variable kann man überall innerhalb des Quellcodes deklarieren. Um eine Variable zu deklarieren schreibt man als erstes den Datentyp (siehe Tabelle) und dann den Namen der Variablen in den Quellcode und beendet die Zeile mit einem Semikolon.
Wichtig:
-
Variablennamen beginnen immer mit einem Buchstaben.
-
Danach kann eine beliebige Reihenfolge von Buchstaben und Zahlen folgen.
-
Variablennamen dürfen keine Leerzeichen beinhalten.
-
Auf Sonderzeichen sollte man weitestgehend verzichten.
-
Bei der Deklaration muss unbedingt auf die Groß- und Kleinschreibung geachtet werden. Variable "zahl" ist nicht das Gleiche wie die Variable "Zahl".
/*
Max Mustermann
Variablen deklarieren
23.05.2005
*/
#include <stdio.h>
void main ()
{
int zahl; // Es wird die Variable "zahl" des Datentyps "int" erstellt
char zeichen; // Es wird die Variable "zeichen" des Datentyps "char" erstellt
...
}
Benötigt man mehrere Variablen eines Datentyps, so können diese durch Komma getrennt hinter dem Datentyp aufgelistet werden. Also:
int zahl1, zahl2, zahl3;
Wertzuweisung in Variablen
Um einer deklarierten Variable einen Wert zu zuweisen, benutzt man den Zuweisungsoperator. Bei der Programmiersprache C ist dies das "=".
Einer Variablen kann zu jeder Zeit ein Wert zugewiesen werden (nach der Deklaration). Auch bei der Deklaration kann man der neuen Variablen ein Wert zuweisen. Dieser Vorgang nennt man Initialisierung.
int zahl = 100;
/*
Max Mustermann
Variablen deklarieren
23.05.2005
*/
#include <stdio.h>
void main()
{
char zeichen;
int zahl = 123; // der Variablen "zahl" wird während der Deklaration der Wert
// 123 übergeben
zeichen = 'a'; // der Variablen "zeichen" wird der Buchstabe 'a' übergeben
}
Datentypen von Variablen
In der folgenden Tabelle ist ein Überblick über einfache Datentypen in C dargestellt. In der 2. Spalte sind die Namen der Datentypen aufgelistet, die durch die Ergänzungen in der 1. Spalte genauer spezifiziert werden können. Dies hat einen Einfluss auf die Größe des Arbeitsspeichers (Spalte 3) und dem Zahlenbereich (Spalte 4), der durch diese Variable abgedeckt wird. In den beiden letzten Spalten stehen die Formatspezifikation (benötigt man zum Beispiel für scanf() und printf()) und die Bedeutung (Inhalt) des Datentyps.
Ergänzungen | Datentyp | Speicher | Zahlenbereich | Format- spezifikation |
Bedeutung |
short | int | 2 Byte | ±32767 | hd oder hi | Ganze Zahlen |
int | 4 Byte | ±2147483647 | d oder i | Ganze Zahlen | |
long | int | 4 Byte | ±2147483647 | ld oder li | Ganze Zahlen |
unsigned short | int | 2 Byte | 0 .. 65535 | ho | Ganze Zahlen |
unsigned | int | 4 Byte | 0 .. 4294967295 | o | Ganze Zahlen |
unsigned long | int | 4 Byte | 0 .. 4294967295 | lo | Ganze Zahlen |
float | 4 Byte | 3.4*10−38 .. 34*1038 |
f, e oder g | Fließkommazahlen | |
double | 4 Byte | 1.7*10−308 .. 1.7*10308 |
lf, le oder lg | Fließkommazahlen | |
long | double | 8 Byte | 3.4*10−4932 .. 3.4*104932 |
lf, le oder lg | Fließkommazahlen |
char | 1 Byte | c | Einzelnes Zeichen | ||
char[] | s | Zeichenkette | |||
bool | d oder i | Logische Variable |
Typkonvertierung
Wenn bei einer Berechnung mehrere Variablen, die von unterschiedlichen Datentypen abhängig sind, verwendet werden, werden sie in einem gemeinsamen Typen nach ein paar wenigen Regeln umgewandelt. Im Allgemeinen sind die einzig automatischen Umwandlungen solche von einem kleinen zu eine großen Typen ohne Verlust von Informationen.
Man kann aber auch Typen selbst umwandeln (konvertieren). Dies funktioniert indem man in runden Klammern den gewünschten Datentyp vor die Variable schreibt:
#include <stdio.h>
void main()
{
char zeichen;
int zahl1 = 123;
float zahl2;
zahl2 = (float) zahl1; // der Inhalt der Variablen "zahl1" wird bei der Zuweisung
// in einen Float-Wert konvertiert und in der Variablen
// "zahl2" gespeichert. Der Wert der Variablen "zahl1" ist
// immer noch von Datentyp "int".
}