Ukazatel (programování): Porovnání verzí
Smazaný obsah Přidaný obsah
m link fix |
Formulace úvodu |
||
Řádek 1:
'''Ukazatel''' (
== Charakteristika ==
Ukazatel používá většina [[Imperativní programování|imperativních]] [[programovací jazyk|programovacích jazyků]], jako např. [[C (programovací jazyk)|jazyk C]] a [[Pascal (programovací jazyk)|Pascal]]. V programovacích jazycích je syntaxí zápisu programu rozlišeno, zda se pracuje s hodnotou adresy ukazatele anebo s hodnotou datového prvku, na který ukazuje.
Zvláště významný je tento datový typ v [[C (programovací jazyk)|jazyku C]], který definuje i tzv. ''pointerovou aritmetiku'' (viz níže), díky které lze např. provést výpočet adres různých prvků v [[Pole (
Při používání ukazatelů často dělají programátoři mnoho [[programátorská chyba|programátorských chyb]]. V novějších programovacích jazycích, jako například [[Java (programovací jazyk)|Java]] a [[Python]], jsou proto ukazatele nahrazeny [[Reference (programování)|referencemi]] na [[objektově orientované programování|objekty]], jejichž použití není tolik náchylné k programátorským chybám.
== Typy ukazatelů ==
V architektuře procesorů [[x86]], kde se používá [[
* '''blízký ukazatel''' (near pointer) – obsahuje jen lineární adresu (offset), a neobsahuje identifikaci (číslo) segmentu
* '''vzdálený ukazatel''' (far pointer) – obsahuje identifikaci (číslo) segmentu i lineární adresu (offset)
Řádek 15 ⟶ 16:
== Pointerová aritmetika ==
Pointerová aritmetika definuje možné výpočetní operace s ukazateli. [[Adresa (
Možné operace s ukazateli jsou buď přírůstek adresy P (čili indexace prvků v [[
Adresy ukazatelů se kterými se provádí pointerová aritmetika se musí nacházet ve stejném adresovém prostoru (např. poli), jinak nemusí být výsledek operace definován.
|