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í
×
    včera 16:44 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.

    Ladislav Hagara | Komentářů: 2
    včera 15:11 | IT novinky

    Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.

    Ladislav Hagara | Komentářů: 9
    včera 13:55 | IT novinky

    Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Nová verze

    D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    včera 02:00 | Nová verze

    Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    15.1. 19:22 | Humor

    CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.

    NUKE GAZA! 🎆 | Komentářů: 3
    15.1. 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 3
    15.1. 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 1
    15.1. 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    15.1. 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (9%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (42%)
    Celkem 465 hlasů
     Komentářů: 12, poslední 14.1. 21:12
    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: 1807×

    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.