Menu
Coddy logo textTech

C Cheat Sheet: ściąga z języka C

Ostatnia aktualizacja

Hello World i struktura programu

Każdy program w C zaczyna się od main i zwraca int.

ElementKod
Dołączenie nagłówka#include <stdio.h>
Punkt wejściaint main(void) { ... }
Z argumentami wiersza poleceńint main(int argc, char *argv[]) { ... }
Wypisanie liniiprintf("Hello, World!\n");
Zwrócenie sukcesureturn 0;
Komentarz jednoliniowy// comment
Komentarz blokowy/* comment */

Typy danych

Rozmiary zależą od platformy; poniższe minima gwarantuje standard.

TypOpis
intLiczba całkowita, co najmniej 16 bitów (zwykle 32)
unsigned intNieujemna liczba całkowita
long / long longSzersze liczby całkowite (co najmniej 32 / 64 bity)
float / doubleLiczba zmiennoprzecinkowa pojedynczej / podwójnej precyzji
charPojedynczy bajt, używany też do znaków
_Bool (bool przez <stdbool.h>)true lub false
size_tTyp bez znaku dla rozmiarów i indeksów
voidBrak typu: używany w funkcjach i wskaźnikach ogólnych

Specyfikatory formatu printf i scanf

Symbole zastępcze dopasowane do typu każdego argumentu.

SpecyfikatorPasuje do
%d / %iint ze znakiem
%uint bez znaku
%ld / %lldlong / long long
%fdouble (i float w printf)
%.2fdouble z 2 miejscami po przecinku
%cPojedynczy char
%sŁańcuch znaków (char *)
%pAdres wskaźnika
%xint bez znaku w zapisie szesnastkowym
%zusize_t

Operatory

OperatorZnaczenie
+ - * / %Arytmetyka (% to reszta z dzielenia całkowitego)
== !=Równe / różne
< > <= >=Porównanie
&& || !Logiczne i / lub / nie
& | ^ ~ << >>Bitowe and, or, xor, not, przesunięcia
++ --Inkrementacja / dekrementacja
+= -= *= /=Przypisanie złożone
cond ? a : bOperator warunkowy (trójargumentowy)
sizeof(x)Rozmiar typu lub zmiennej w bajtach

Sterowanie przepływem

InstrukcjaSkładnia
If / elseif (x > 0) { ... } else { ... }
Else ifelse if (x == 0) { ... }
Switchswitch (n) { case 1: ...; break; default: ...; }
Pętla whilewhile (i < n) { ... }
Pętla do-whiledo { ... } while (i < n);
Pętla forfor (int i = 0; i < n; i++) { ... }
Break / continuebreak; wychodzi z pętli, continue; przechodzi do następnej iteracji
Goto (rzadko)goto label; ... label:

Funkcje

Zadeklaruj funkcję przed użyciem albo dodaj prototyp na początku pliku.

OperacjaSkładnia
Definicja funkcjiint add(int a, int b) { return a + b; }
Prototyp (deklaracja)int add(int a, int b);
Bez wartości zwracanejvoid greet(void) { ... }
Bez parametrówint rand_seed(void) { ... }
Przekazanie przez wskaźnik (modyfikacja)void inc(int *p) { (*p)++; }
Przekazanie tablicyint sum(int arr[], int n) { ... }
Static (lokalna w pliku)static int helper(void) { ... }

Wskaźniki i pamięć

Wskaźnik przechowuje adres. Pamięć na stercie trzeba zwalniać ręcznie.

OperacjaSkładnia
Deklaracja wskaźnikaint *p;
Pobranie adresup = &x;
Dereferencja (odczyt/zapis)int y = *p; / *p = 10;
Wskaźnik pustyint *p = NULL;
Alokacja na stercieint *a = malloc(n * sizeof(int));
Alokacja + zerowanieint *a = calloc(n, sizeof(int));
Zmiana rozmiaru alokacjia = realloc(a, newSize);
Zwolnienie pamięci na sterciefree(a);
Arytmetyka wskaźników*(a + i) to to samo co a[i]

Tablice i łańcuchy znaków

Łańcuchy w C to tablice char zakończone znakiem \0.

OperacjaSkładnia
Deklaracja tablicyint nums[5];
Inicjalizacja tablicyint nums[] = {1, 2, 3};
Dostęp do elementunums[0] = 10;
Długość tablicy (tablice na stosie)sizeof(nums) / sizeof(nums[0])
Literał łańcuchowychar s[] = "hello";
Długość łańcuchastrlen(s) (bez \0)
Kopiowanie łańcuchastrcpy(dst, src);
Porównanie łańcuchówstrcmp(a, b) == 0 oznacza równość
Łączenie łańcuchówstrcat(dst, src);

Struktury i popularne funkcje biblioteki standardowej

OperacjaSkładnia
Definicja strukturystruct Point { int x; int y; };
Deklaracja i dostępstruct Point p; p.x = 1;
Dostęp przez wskaźnikp->x = 1; (to samo co (*p).x)
Alias typutypedef struct Point Point;
Odczyt danych wejściowychscanf("%d", &n);
Zamiana łańcucha na intint n = atoi("42");
Wartość bezwzględna / potęgaabs(x) (int), pow(x, y) z <math.h>
Sortowanie tablicyqsort(arr, n, sizeof(int), cmp);

Najczęściej używana składnia C, specyfikatory formatu i wzorce pracy ze wskaźnikami na jednej stronie. Ten C cheat sheet to szybka ściąga do pisania w C: typy danych, specyfikatory printf/scanf, operatory, sterowanie przepływem oraz operacje na wskaźnikach i pamięci, na których wiele osób się potyka.

Wszystko tutaj to standardowe C (C99/C11), które kompiluje się w gcc lub clang. Skopiuj to, czego potrzebujesz, albo uruchom dowolny fragment w edytorze online C, bez instalowania kompilatora. Uczysz się C? Darmowy interaktywny kurs C w Coddy uczy w praktyce wskaźników, pamięci i biblioteki standardowej.

C cheat sheet: najczęstsze pytania

Czy ten C cheat sheet jest darmowy?
Tak. Ta ściąga z C jest całkowicie darmowa i nie wymaga rejestracji. Dodaj ją do zakładek i wracaj, gdy potrzebujesz sprawdzić typ, specyfikator formatu albo operację na wskaźnikach.
Czym różni się stos od sterty w C?
Stos przechowuje zmienne lokalne i jest zwalniany automatycznie, gdy funkcja się kończy: jest szybki, ale ma ograniczony rozmiar. Pamięć na stercie przydziela się jawnie przez malloc lub calloc, istnieje do wywołania free i używa się jej, gdy pamięć ma przetrwać bieżącą funkcję albo jej rozmiar jest znany dopiero w czasie działania programu. Brak free dla pamięci na stercie powoduje wyciek pamięci.
Dlaczego scanf potrzebuje ampersandu (&), a printf nie?
scanf zapisuje wartość z powrotem do zmiennej, więc potrzebuje adresu zmiennej, a właśnie to daje &x. printf tylko odczytuje wartość, więc przekazujesz samą wartość. Wyjątkiem są łańcuchy: tablica char sama zamienia się we wskaźnik, dlatego piszesz scanf("%s", name) bez &.
Czy mogę ćwiczyć C online?
Tak. Otwórz edytor online C, aby skompilować i uruchomić dowolny fragment z tej ściągi w przeglądarce, bez instalowania kompilatora. Gdy chcesz uczyć się bardziej systematycznie, darmowy interaktywny kurs C w Coddy prowadzi krok po kroku od zmiennych i pętli do wskaźników i zarządzania pamięcią.
Czy ta ściąga nadaje się dla początkujących?
Tak. Jest ułożona od najczęstszych elementów (typy, printf, sterowanie przepływem) do bardziej zaawansowanych (wskaźniki, pamięć, struktury), więc górnych sekcji możesz używać od pierwszego dnia, a resztę poznawać z czasem.
Ilustracja języków programowania w Coddy

Naucz się języka C z Coddy

ZACZNIJ