Variablen mit festem Typ
In C musst du jede Variable vor dem ersten Gebrauch mit ihrem Typ deklarieren — der Typ bleibt danach fest.
#include <stdio.h> int main(void) { int alter = 14; // ganze Zahl double preis = 2.49; // Kommazahl, doppelte Genauigkeit float temperatur = 21.5f; // Kommazahl, einfache Genauigkeit char note = 'B'; // ein Zeichen, einfache Anführungszeichen printf("%d Jahre\n", alter); printf("%f Euro\n", preis); printf("%.1f Grad\n", temperatur); printf("Note %c\n", note); return 0; }
$ ./typen 14 Jahre 2.490000 Euro 21.5 Grad Note B
- int:ganze Zahlen wie
14oder-3. - double:Kommazahlen mit Dezimalpunkt:
2.49. - float:Kommazahl mit weniger Genauigkeit, Wert mit
f:21.5f. - char:genau ein Zeichen in einfachen Anführungszeichen:
'B'. - Deklarieren:
Typ name;— vor dem ersten Gebrauch. - Initialisieren:Startwert gleich mitgeben:
int alter = 14;. - Unterschied zu Python:In Python hängt der Typ am Wert und darf wechseln; in C hängt er fest an der Variablen.
int a = 7, b = 2; printf("%d\n", a / b); // Ganzzahldivision printf("%d\n", a % b); // Rest printf("%f\n", 7.0 / 2); // eine Kommazahl beteiligt printf("%f\n", (double) a / b); // Typumwandlung (cast)
3 1 3.500000 3.500000
- int / int:
7 / 2ergibt3— der Rest wird abgeschnitten, nicht gerundet. - Rest:
7 % 2ergibt1(Modulo, nur für ganze Zahlen). - Kommazahl beteiligt:
7.0 / 2rechnet mit Kommazahlen:3.5. - Cast:
(double) a / bwandeltavor der Division indoubleum.
Division: int / int liefert eine ganze Zahl (Rest weg). Ist ein double beteiligt, entsteht eine Kommazahl.
Ausgabe mit printf
printf ersetzt jeden Platzhalter im Formatstring der Reihe nach durch einen Wert aus der Liste dahinter.
- %d:ganze Zahl (
int). - %f:Kommazahl, immer mit 6 Nachkommastellen:
2.490000. - %.2f:Kommazahl mit 2 Nachkommastellen, gerundet.
- %c:ein Zeichen (
char). - %5d:Feldbreite 5: rechtsbündig, links mit Leerzeichen aufgefüllt.
- %8.2f:Feldbreite 8 und 2 Nachkommastellen — der Punkt zählt mit.
- \n und \t:Zeilenumbruch und Tabulator (springt zur nächsten Tabstopp-Spalte).
- %%:gibt ein echtes Prozentzeichen aus.
int menge = 3; double preis = 1.8; printf("Artikel\tMenge\tPreis\n"); printf("Apfel\t%5d\t%8.2f\n", menge, preis); printf("Rabatt: 10%%\n");
Artikel Menge Preis Apfel 3 1.80 Rabatt: 10%
Wähle oben eine Variable und stelle mit den Reglern Feldbreite und Nachkommastellen ein. Das Raster zeigt jedes ausgegebene Zeichen in einem eigenen Kästchen — auch die Leerzeichen. Mit den Pfeiltasten wanderst du durch die Kästchen, ▶ lässt die Feldbreite wachsen.
Halte fest: Die Feldbreite ist eine Mindestbreite — fehlende Zeichen werden links mit Leerzeichen aufgefüllt, zu lange Zahlen werden nie abgeschnitten. Die Nachkommastellen werden gerundet, und der Dezimalpunkt zählt als eigenes Zeichen mit.
Platzhalter: % Feldbreite .Nachkommastellen Typzeichen — z. B. %8.2f. Typzeichen passend zum Typ: %d für int, %f für double/float, %c für char.
Allgemeine Hinweise
Typzeichen muss passen
printf("%d", 2.5) gibt Unsinn wie -788356920 aus. gcc -Wall warnt: format '%d' expects argument of type 'int'.
Punkt statt Komma
double x = 3,14; ist ein Fehler: expected identifier or '(' before numeric constant. Kommazahlen schreibst du mit Punkt.
Immer initialisieren
Eine Variable ohne Startwert enthält zufälligen Speicherinhalt. Gib ihr beim Deklarieren gleich einen Wert, z. B. int summe = 0;.
