Studijní materiály
EXTRA Kontakt

Deklarace a inicializace ukazatelů v jazyce C

Ukazatele jsou jedním z nejmocnějších konceptů v jazyce C, které umožňují pracovat s pamětí a dynamicky manipulovat s daty. V tomto výkladu se podrobně podíváme na deklaraci a inicializaci ukazatelů v jazyce C, jak je správně používat a poskytneme konkrétní příklady jejich použití.

Deklarace ukazatelů

Ukazatel je proměnná, která obsahuje adresu v paměti, kde je uložena hodnota. Deklarace ukazatele určuje datový typ proměnné, která bude uložena na dané adrese v paměti.

Příklad deklarace ukazatele:

#include <stdio.h>
      
      int main() {
          int cislo = 10; // Deklarace a inicializace běžné proměnné
          int *ukazatel; // Deklarace ukazatele
      
          ukazatel = &cislo; // Přiřazení adresy proměnné ukazateli
      
          printf("Hodnota promenne cislo: %d\n", *ukazatel); // Výstup: Hodnota promenne cislo: 10
          return 0;
      }
      

V tomto příkladu jsme vytvořili ukazatel na celočíselnou proměnnou cislo. Symbol * před názvem ukazatele značí, že se jedná o ukazatel. Pomocí operátoru ampersand & získáme adresu proměnné, kterou přiřadíme ukazateli.

Inicializace ukazatelů

Ukazatele mohou být inicializovány při deklaraci, což znamená, že jim může být přiřazena adresa cílové proměnné již při vytvoření.

Příklad inicializace ukazatele:

#include <stdio.h>
      
      int main() {
          int cislo = 10; // Deklarace a inicializace běžné proměnné
          int *ukazatel = &cislo; // Inicializace ukazatele při deklaraci
      
          printf("Hodnota promenne cislo: %d\n", *ukazatel); // Výstup: Hodnota promenne cislo: 10
          return 0;
      }
      

V tomto příkladu jsme inicializovali ukazatel ukazatel při deklaraci a přiřadili mu adresu proměnné cislo.

Ukázka použití ukazatelů

Ukazatele se používají pro různé účely, jako je dynamická alokace paměti, práce s funkcemi, manipulace s poli a strukturami a mnoho dalších.

Příklad použití ukazatele pro změnu hodnoty proměnné:

#include <stdio.h>
      
      void zmen_hodnotu(int *ptr) {
          *ptr = 20; // Změna hodnoty proměnné, na kterou ukazuje ukazatel
      }
      
      int main() {
          int cislo = 10;
          int *ukazatel = &cislo;
      
          printf("Puvodni hodnota promenne cislo: %d\n", cislo); // Výstup: Puvodni hodnota promenne cislo: 10
      
          zmen_hodnotu(ukazatel);
      
          printf("Nova hodnota promenne cislo: %d\n", cislo); // Výstup: Nova hodnota promenne cislo: 20
      
          return 0;
      }
      

V tomto příkladu jsme vytvořili funkci zmen_hodnotu(), která přijímá ukazatel jako argument a mění hodnotu proměnné, na kterou ukazatel odkazuje. Poté jsme zavolali tuto funkci s ukazatelem na proměnnou cislo, čímž jsme změnili její hodnotu.

Ukazatele jsou mocným nástrojem v jazyce C a správné pochopení jejich použití je klíčem k efektivnímu vytváření programů.