abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 17:22 | Nová verze

    3D software Blender byl vydán ve verzi 4.5 s prodlouženou podporou. Podrobnosti v poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | Komunita

    Open source webový aplikační framework Django slaví 20. narozeniny.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 26
    včera 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 20
    13.7. 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 17
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    11.7. 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    10.7. 21:00 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 4
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 397 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    ukazatel v jazyce C

    Ukazatel je proměnná, jejímž obsahem je určitá adresa (ve virtuální paměti, případně RAM). Pokud se budeme např. bavit o ukazateli na znak, tak obsahem ukazatele na znak je adresa určitého jednoho znaku (tedy na této adrese ten určitý znak leží) nebo se může klidně jednat o adresu prvního člena pole znaků.

    Chtěl bych zdůraznit, že obsahem ukazatele obecně je adresa, se kterou můžeme pracovat pomocí aritmetiky ukazatelů. Tedy můžeme k této adrese přičíst třeba jedničku ( == posun o jeden údaj vpřed). Vždy se tedy posouváme o x údajů (v případě ukazatele na znak tedy o x znaků). To se využívá v případě dynamických polí.

    A protože se ukazatele velmi často používají k tvorbě dynamických polí, tak zde uvedu okomentovaný příklad na použití. Nejdříve ale k tvorbě jednorozměrných polí obecně:

    Nejdříve definujeme ukazatele na nějaký datový typ. Potom alokujeme paměť pro x prvků daného datového typu a ukazateli přiřadíme adresu prvního z nich. Pomocí indexů či aritmetiky ukazatelů s polem pracujeme. Nakonec uvolníme alokovanou (zabranou) paměť.

    /* Vysvětlíme si, jak se postupuje při vytváření jednorozměrného
       dynamického pole s pomocí ukazatele. */
    
    #include <stdio.h>
    #define POCET_PRVKU_POLE 14
    
    int main(void)
    {
      char *pznak; /* Ukazatel na znak. */
      
      pznak = (char *) malloc(POCET_PRVKU_POLE * sizeof(char));
      /* funkce malloc alokovala paměť pro POCET_PRVKU_POLE znaků. */
      /* (char *) je přetypování na ukazatel na znak. */
      /* sizeof(char) navrátí velikost jednoho znaku. */
      
      *pznak = 'A'; /* Prvni prvek pole (s indexem 0) bude mít hodnotu 'A'. */
      /* "*pznak" znamená, že chceme pracovat s hodnotou na adrese,
         která je obsahem ukazatele. '*' zde představuje tzv.
         dereferenční operátor. */
      *(pznak + 1) = 'B'; /* Druhý prvek (s indexem 1).
      *(pznak + POCET_PRVKU_POLE - 1) = 'X'; /* poslední prvek */
    
      /* Poznámka: K hodnotám prvků pole lze přistupovat i pomocí
       indexů, tedy formou "pznak[index] = 'znak';". Je třeba ale
       zdůraznit, že se čísluje od nuly! Tedy první prvek má index 0! */
    
      /* Alokovanou (zabranou) paměť uvolníme takto: */
      free(pznak);
    }
    

    Nakonec si vysvětlíme dva velmi důležité pojmy v souvislosti s ukazateli:

    • Referenční operátor ('&') -- vrací adresu na proměnnou, před níž se uvede. Příklad: pznak = &vstup;
    • Dereferenční operátor ('*') -- umožňuje zapisovat/číst hodnotu na adrese dané obsahem ukazatele. Příklad: *pznak = 'A';

    Dokument vytvořil: Begleiter, 11.11.2010 14:52 | Poslední úprava: Luboš Doležel (Doli), 25.11.2010 11:39 | Další přispěvatelé: David Watzke, Begleiter | Historie změn | Zobrazeno: 1749×

    Další pojmy: UDS - UI - UID - ukazatel v jazyce C - UML - Unicode - Universal Disk Format

    Filtr: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.