Ukazatele jsou základním aspektem programování v C, kterému budete muset dobře rozumět, abyste jazyk mohli efektivně používat. Pomáhají při efektivní správě paměti, předávání dat odkazem, manipulaci s poli a řetězci a další. Vyžadují však pečlivé používání, aby nedošlo k chybám.
MUO Video dne POKRAČOVÁNÍ V OBSAHU POKRAČUJTE PŘEJÍMÁNÍM
Prozkoumejte detaily ukazatelů C, od porozumění paměti a adresám až po zvládnutí aritmetiky ukazatelů.
Paměť a adresy
Paměť – často se používá jako zkratka pro RAM (paměť s náhodným přístupem) – je úložný prostor v počítači, který uchovává data a instrukce, které program potřebuje ke spuštění. Slouží jako pracovní prostor pro váš program. Nejmenší jednotkou paměti je obvykle bajt, který se rovná osmi bitům.
Každé paměťové místo má jedinečnou adresu a může ukládat různé množství dat v závislosti na počítači. Když deklarujete proměnnou v C, implicitně jí přiřazujete paměťové místo pro uložení jejích dat. Představte si to jako dům, který má jedinečnou adresu, kterou můžete použít k jeho nalezení.
jaké jsou věci na zadní straně telefonů lidí
Představte si paměť vašeho počítače jako sekvenci paměťových buněk, z nichž každá obsahuje jeden bajt dat. Řekněme, že existují dvě proměnné, X a a , v programu C:
int x = 5;
int y = 10;
V paměti to může vypadat takto:
1000 | 5 |
1004 | 10 |
Zde jsou tyto proměnné uloženy v oddělených paměťových místech. Údaje, které X představuje se nachází na adrese paměti 1000, zatímco a data zabírají paměťovou adresu 1004.
Pochopení paměti a adres je zásadní při práci s ukazateli, protože jsou to proměnné, které ukládají adresy paměti. Umožňují vám přístup a manipulaci s daty uloženými v určitém paměťovém místě.
Deklarování a inicializace ukazatelů v C
Než budete moci upravit data pomocí ukazatelů v C, musíte je deklarovat a inicializovat.
Prohlášení
Chcete-li deklarovat ukazatel, zadejte datový typ, na který ukazuje, následovaný hvězdičkou (*) a poté názvem ukazatele. Například:
int *ptr;
Tady, int *ptr deklaruje ukazatel s názvem ptr který může uložit adresu paměti celého čísla.
Inicializace
Po deklaraci byste jej měli inicializovat s adresou paměti, na kterou bude ukazovat. Můžete to inicializovat takto:
int x = 5;
int *ptr = &x;
V tomto prohlášení, & operátor načte adresu proměnné x. Kód v podstatě říká 'ptr je proměnná, ukládá paměťové umístění celočíselné hodnoty a toto umístění je všude tam, kde x aktuálně odkazuje.'
Nyní, ptr obsahuje adresu celočíselné proměnné X . Například:
X | 1000 | 5 |
ptr | ---- | 1000 |