Initialisierung und Zuweisung
Eine Variable zu deklarieren und danach einen Wert in ihr zu speichern, braucht zwei Zeilen. Du kannst beides in einer erledigen:
int alter = 15;Einer Variablen beim Anlegen einen Wert zu geben heißt Initialisierung. In diesem Kurs legst du Variablen auf diese Weise an, denn dann siehst du von Anfang an, was in einer Variablen steht.
Später kannst du einen anderen Wert in der Variablen speichern. Das heißt Zuweisung. Schreibe den Namen, = und den neuen Wert, aber ohne den Datentyp, denn die Variable gibt es schon:
int punkte = 0;
printf("Punkte: %d\n", punkte);
punkte = 50;
printf("Punkte: %d\n", punkte);Das gibt Folgendes aus:
Punkte: 0
Punkte: 50Ein Programm führt seine Anweisungen nacheinander von oben nach unten aus. Wenn das erste printf läuft, enthält punkte den Wert 0. Die nächste Zeile ersetzt ihn durch 50, und der alte Wert ist weg. Das zweite printf gibt also den neuen Wert aus.
Ein häufiger Fehler ist, bei einer Zuweisung den Datentyp noch einmal zu schreiben: int punkte = 50;. Das würde eine zweite Variable mit demselben Namen anlegen, und das erlaubt C nicht. Der Compiler meldet redefinition of 'punkte': Du definierst den Namen punkte ein zweites Mal.
Ein weiterer Fehler ist, eine Variable zu verwenden, bevor sie einen Wert hat:
#include <stdio.h>
int main(void) {
int punkte;
printf("Punkte: %d\n", punkte);
return 0;
}Der Compiler meldet:
main.c:5:28: error: variable 'punkte' is uninitialized when used here [-Werror,-Wuninitialized]Uninitialized heißt, dass die Variable noch keinen Wert hat. Der Teil in eckigen Klammern sagt nur, welche Prüfung des Compilers das Problem gefunden hat; du kannst ihn ignorieren. Unter der ersten Zeile zeigt dir der Compiler sogar, wo du einen Wert ergänzen kannst (= 0).
Warum ist das ein Fehler? C selbst sagt nicht, was eine Variable ohne Wert enthält. Auf einem anderen Computer könnte dieses Programm 0 ausgeben oder 21845 oder jedes Mal eine andere Zahl. Einen solchen Fehler zu finden ist schwer, deshalb lässt der Compiler auf dieser Seite ihn nicht durch. Am sichersten vermeidest du ihn, indem du jeder Variablen beim Anlegen einen Wert gibst.
So schreibst du es:
Anweisungen
- 1
Führe das Programm aus. Es lässt sich nicht kompilieren, weil
temperaturkeinen Wert hat. Initialisiere die Variable: Gib ihr beim Anlegen den Wert12. Dann gibt das ProgrammMorgens: 12 Gradaus. - 2
Am Nachmittag ist es wärmer geworden. Weise
temperaturunter demprintfden neuen Wert18zu. - 3
Gib den neuen Wert darunter auf dieselbe Weise aus, aber mit
NachmittagsstattMorgens. Das Programm soll Folgendes ausgeben:Morgens: 12 Grad Nachmittags: 18 Grad