1 / 5

Gymnázium prof. Jana Patočky Jindřišská 36 110 00 Praha 1 gpjp.cz/projekty/soucasny-svet

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita. Gymnázium prof. Jana Patočky Jindřišská 36 110 00 Praha 1 www.gpjp.cz/projekty/soucasny-svet geu@gpjp.cz www.esfcr.cz

isolde
Download Presentation

Gymnázium prof. Jana Patočky Jindřišská 36 110 00 Praha 1 gpjp.cz/projekty/soucasny-svet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Současný světProjekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámciOperačního programu Praha adaptabilita Gymnázium prof. Jana Patočky Jindřišská 36 110 00 Praha 1 www.gpjp.cz/projekty/soucasny-svet geu@gpjp.cz www.esfcr.cz „Praha & EU: Investujeme do vaší budoucnosti“

  2. Jazyk CPointery (ukazatelé) Pravidlo: identifikátor proměnné typu pointer bude vždy začínat na p_ a pokračovat jménem proměnné, na kterou ukazuje (abychom se v tom ještě někdy vyznali) Základní operátory pro práci s pointery: & - referenční operátor * - dereferenční operátor Obrázek znamená toto: „na adrese p_i (87) je uložena informace, kde hledat něco dalšího: na adrese 25, kde je uloženo číslo 18“ Pokud se tímto způsobem budete chtít rovnou podívat, kam ukazuje pointer, napíšete *p_i . To znamená: „chci vidět to, co je uloženo na adrese, která je hodnotou pointeru p_i“

  3. Jazyk CPointery (ukazatelé) Je zadáno: int *p_i , i ; /* tzn. obsahem pointeru p_i je adresa proměnné i */ jak to lze naplnit: buď: přímo při definici: int i , *p_i=&i ; /* *p_i zde není dereference, ale definice typu pointer */ nebo nadvakrát: int i , *p_i ; p_i = &i ;

  4. Jazyk CPointery (ukazatelé) Pointer je možno naplnit vlastním přiřazením. Například: p_i = k+1 ; To ale vyžaduje už hodně hlubokou znalost problematiky, v praxi se to moc nepoužívá a pro osoby bez dokonalé znalosti problematiky nedoporučuje. Obvykle se hodnota (alespoň výchozí) pointeru získá referencí z existující proměnné: int i, *p_i ; p_i=&i ; Pak je možno pointer číselně modifikovat: int pole[10], *p_pole ; p_pole=&pole[0] ; Pak *p_pole+3je totéž jakopole[3] Příklad: pointer_pole.c

  5. Jazyk CPointery (ukazatelé) Při definici je nutno dbát na to, aby pointer byl stejného typu jako proměnná, na kterou odkazuje. Jen tak je možno pointery správně modifikovat. Příklad 1: pointer odkazuje naprvní prvek pole typu int: int i, pole[10], *p_pole ; p_pole=&pole[0] ; Příklad 2: pointer odkazuje na začátek znakového řetězce: char pole[10], *p_pole ; p_pole=&pole[0] ; Ukázka v programu: pointer_char.c

More Related