Zdeňkovo poznámky

Co zjistím a opakovaně vyheldávám, tak sem zapíšu

Uživatelské nástroje

Nástroje pro tento web


programovani:ukazatele

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
programovani:ukazatele [2018/01/12 07:41] Zdeněk Havlíkprogramovani:ukazatele [2018/01/17 13:03] (aktuální) – [Ukazatelé a reference] Zdeněk Havlík
Řádek 1: Řádek 1:
-===== Ukazatelé =====+====== Ukazatelé a reference ====== 
 +Proč používat ukazatele? Proto => http://kmlinux.fjfi.cvut.cz/~fabiadav/cecko/poznamky-k-jazyku-c/ukazatele\\ 
 +\\ 
 +Ukazatel (anglicky pointer) je v informatice označení pro datový typ, který slouží k uložení adresy v paměti počítače. Ukazatel slouží pro zpřístupnění dat, která jsou na příslušné adrese v operační paměti uložena. Zdroj: [[https://cs.wikipedia.org/wiki/Ukazatel_(programov%C3%A1n%C3%AD)|Wiki]] 
 +===== Ukazatel (pointer) =====
 deklarce proměnné deklarce proměnné
 <code cpp> <code cpp>
 char promenna; char promenna;
 +char dalsi_promenna;
 </code> </code>
 deklarace ukazatele - * deklarace ukazatele - *
Řádek 10: Řádek 15:
 operátor reference - & operátor reference - &
 <code cpp> <code cpp>
-ukazatel = &promenna;+ukazatel = &promenna; // přiřazení adresy v paměni na proměnou pomocí & (ampersand) 
 +</code> 
 +operace dereference - * 
 +<code cpp> 
 +dalsi_promenna = *ukazatel; 
 +</code> 
 +==== Příklad ==== 
 +<file cpp ukazatel.cpp> 
 +#include <iostream> 
 +using namespace std; 
 + 
 +int *ukazatel, promenna, dalsi_promenna; 
 + 
 +int main () 
 +
 +   promenna = 2018; // přiřazení hodnoty do promenné 
 +   ukazatel = &promenna; // uložení adresy paměti na proměnnou 'promenna' 
 +   dalsi_promenna = *ukazatel; // do jiné proměnné uložení HODNOTY přes ukazatel 
 +   cout << dalsi_promenna; 
 +    
 +   int i; // definice proměnné i datového typu int 
 +   int a[3]; // definice proměnné a, pole typu int se třemi prvky 
 +   int *p; // definice proměnné p, ukazatele na datový typ int 
 +   p = &i; // hodnota pointeru je nastavena na adresu proměnné i 
 +   *p = 3; // do paměti na adresu odkazovanou ukazatelem p se uloží hodnota 3 
 +   p = &(a[2]); // hodnota pointeru je nastavena na prvek pole a s indexem 2 
 +   p = p - 2; // hodnota pointeru je nastavena na prvek pole a s indexem 0 (tj. první prvek pole) 
 +   *p = 5; // do paměti na adresu odkazovanou p se uloží hodnota 5 (tedy první prvek pole má tuto hodnotu) 
 + 
 +    return 0; 
 +}  
 +</file> 
 +==== Praktický příklad ==== 
 +Zdroj: https://www.itnetwork.cz/cplusplus/cecko/dynamicka-prace-s-pameti/tutorial-jazyk-c-ukazatele 
 +<code cpp ukazatel_priklad.cpp> 
 +void prohod(int *p_a, int *p_b) 
 +
 +    int pomocna = *p_a; 
 +    *p_a = *p_b; 
 +    *p_b = pomocna; 
 +
 + 
 +int main(int argc, char** argv) { 
 +    int cislo1 = 15; 
 +    int cislo2 = 8; 
 +    prohod(&cislo1, &cislo2); 
 +    printf("V a je číslo %d a v b je číslo %d.", cislo1, cislo2); 
 +    return (EXIT_SUCCESS); 
 +}
 </code> </code>
  
programovani/ukazatele.1515742892.txt.gz · Poslední úprava: 2018/01/12 07:41 autor: Zdeněk Havlík

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki