Menu
Coddy logo textTech

C Spickzettel

Zuletzt aktualisiert

Hello World & Programmaufbau

Jedes C-Programm beginnt bei main und gibt ein int zurück.

ElementCode
Einen Header einbinden#include <stdio.h>
Einstiegspunktint main(void) { ... }
Mit Kommandozeilenargumentenint main(int argc, char *argv[]) { ... }
Eine Zeile ausgebenprintf("Hello, World!\n");
Erfolg zurückgebenreturn 0;
Einzeiliger Kommentar// comment
Blockkommentar/* comment */

Datentypen

Größen sind plattformabhängig; die folgenden Mindestwerte werden vom Standard garantiert.

TypBeschreibung
intGanzzahl, mindestens 16 Bit (meist 32)
unsigned intNicht-negative Ganzzahl
long / long longBreitere Ganzzahlen (mindestens 32 / 64 Bit)
float / doubleGleitkomma mit einfacher / doppelter Genauigkeit
charEinzelnes Byte, auch für Zeichen verwendet
_Bool (bool über <stdbool.h>)true oder false
size_tVorzeichenloser Typ für Größen und Indizes
voidKein Typ - für Funktionen und generische Zeiger verwendet

printf- & scanf-Formatangaben

Platzhalter, die zum Typ jedes Arguments passen.

AngabePasst zu
%d / %iVorzeichenbehaftetes int
%uVorzeichenloses int
%ld / %lldlong / long long
%fdouble (und float in printf)
%.2fdouble mit 2 Nachkommastellen
%cEinzelnes char
%sString (char *)
%pZeigeradresse
%xVorzeichenloses int in Hexadezimal
%zusize_t

Operatoren

OperatorBedeutung
+ - * / %Arithmetik (% ist der ganzzahlige Rest)
== !=Gleich / ungleich
< > <= >=Vergleich
&& || !Logisches und / oder / nicht
& | ^ ~ << >>Bitweise und, oder, xor, nicht, Verschiebungen
++ --Inkrement / Dekrement
+= -= *= /=Zusammengesetzte Zuweisung
cond ? a : bTernäre Bedingung
sizeof(x)Größe eines Typs oder einer Variable in Bytes

Kontrollfluss

AnweisungSyntax
If / elseif (x > 0) { ... } else { ... }
Else ifelse if (x == 0) { ... }
Switchswitch (n) { case 1: ...; break; default: ...; }
While-Schleifewhile (i < n) { ... }
Do-while-Schleifedo { ... } while (i < n);
For-Schleifefor (int i = 0; i < n; i++) { ... }
Break / continuebreak; verlässt eine Schleife, continue; springt zur nächsten Iteration
Goto (selten)goto label; ... label:

Funktionen

Vor der Verwendung deklarieren oder einen Prototyp am Anfang der Datei hinzufügen.

OperationSyntax
Eine Funktion definierenint add(int a, int b) { return a + b; }
Prototyp (Deklaration)int add(int a, int b);
Kein Rückgabewertvoid greet(void) { ... }
Keine Parameterint rand_seed(void) { ... }
Übergabe per Zeiger (verändern)void inc(int *p) { (*p)++; }
Ein Array übergebenint sum(int arr[], int n) { ... }
Static (dateilokal)static int helper(void) { ... }

Zeiger & Speicher

Ein Zeiger hält eine Adresse. Heap-Speicher muss manuell freigegeben werden.

OperationSyntax
Einen Zeiger deklarierenint *p;
Adresse-vonp = &x;
Dereferenzieren (lesen/schreiben)int y = *p; / *p = 10;
Nullzeigerint *p = NULL;
Auf dem Heap reservierenint *a = malloc(n * sizeof(int));
Reservieren + nullenint *a = calloc(n, sizeof(int));
Eine Reservierung vergrößerna = realloc(a, newSize);
Heap-Speicher freigebenfree(a);
Zeigerarithmetik*(a + i) ist dasselbe wie a[i]

Arrays & Strings

Strings in C sind char-Arrays, abgeschlossen durch \0.

OperationSyntax
Ein Array deklarierenint nums[5];
Ein Array initialisierenint nums[] = {1, 2, 3};
Auf ein Element zugreifennums[0] = 10;
Array-Länge (Stack-Arrays)sizeof(nums) / sizeof(nums[0])
String-Literalchar s[] = "hello";
String-Längestrlen(s) (ohne \0)
Einen String kopierenstrcpy(dst, src);
Strings vergleichenstrcmp(a, b) == 0 bedeutet gleich
Strings verkettenstrcat(dst, src);

Structs & gängige stdlib

OperationSyntax
Ein Struct definierenstruct Point { int x; int y; };
Deklarieren & zugreifenstruct Point p; p.x = 1;
Zugriff per Zeigerp->x = 1; (entspricht (*p).x)
Typaliastypedef struct Point Point;
Eingabe lesenscanf("%d", &n);
String in int umwandelnint n = atoi("42");
Absolutwert / Potenzabs(x) (int), pow(x, y) aus <math.h>
Ein Array sortierenqsort(arr, n, sizeof(int), cmp);

Die C-Syntax, Formatangaben und Zeigermuster, die du am häufigsten brauchst, auf einer Seite. Dieser C-Spickzettel ist eine Schnellreferenz zum Schreiben von C - die Datentypen, printf/scanf-Angaben, Operatoren, der Kontrollfluss sowie die Zeiger- und Speicheroperationen, die viele aus dem Tritt bringen.

Alles hier ist Standard-C (C99/C11) und kompiliert mit gcc oder clang. Kopiere, was du brauchst, oder probiere jeden Codeschnipsel live im C-Playground aus - kein Compiler zu installieren.

C-Spickzettel FAQ

Ist dieser C-Spickzettel kostenlos?
Ja. Dieser C-Spickzettel ist völlig kostenlos, ohne erforderliche Anmeldung. Setze ein Lesezeichen und komm jederzeit wieder, wenn du einen Typ, eine Formatangabe oder eine Zeigeroperation nachschlagen möchtest.
Was ist der Unterschied zwischen Stack und Heap in C?
Stack-Speicher hält lokale Variablen und wird beim Rücksprung einer Funktion automatisch freigegeben - schnell, aber in der Größe begrenzt. Heap-Speicher wird explizit mit malloc oder calloc reserviert, lebt, bis du free aufrufst, und wird verwendet, wenn du Speicher brauchst, der die aktuelle Funktion überdauert oder dessen Größe erst zur Laufzeit bekannt ist. Wenn du vergisst, Heap-Speicher mit free freizugeben, entsteht ein Speicherleck.
Warum braucht scanf ein Und-Zeichen (&), printf aber nicht?
scanf schreibt den Wert in deine Variable zurück, daher braucht es die Adresse der Variable - genau das liefert &x. printf liest den Wert nur, also übergibst du den Wert selbst. Die Ausnahme sind Strings: Ein char-Array zerfällt bereits zu einem Zeiger, also übergibst du scanf("%s", name) ohne das &.
Kann ich C online üben?
Ja. Öffne den C-Playground, um jeden Codeschnipsel aus diesem Spickzettel in deinem Browser zu kompilieren und auszuführen - kein Compiler zu installieren. Wenn du Struktur möchtest, führt dich Coddys kostenloser interaktiver C-Kurs Schritt für Schritt von Variablen und Schleifen zu Zeigern und Speicherverwaltung.
Ist dieser Spickzettel für Anfänger geeignet?
Ja. Er ist von den häufigsten Bausteinen (Typen, printf, Kontrollfluss) hin zu den fortgeschrittenen (Zeiger, Speicher, Structs) gegliedert, sodass du die oberen Abschnitte schon am ersten Tag nutzen und in den Rest hineinwachsen kannst.
Coddy programming languages illustration

Lerne C mit Coddy

LOS GEHT'S