Dereference

Dereference je v programování operace, kterou se získává přístup k proměnné, na níž se odkazuje ukazatel nebo reference. V některých případech a jazycích je dereference implicitní (např. reference v C++), ve většině jazyků je však třeba použít unární operátor dereference.

Operátor dereference se zapisuje různě. V jazyce Pascal se na rozdíl od většiny ostatních jazyků zapisuje operátor za ukazatel; ve standardním Pascalu se pro dereferenci používá symbol šipka (), který však není v mnoha znakových sadách obsažen, proto bývá nahrazován znakem stříška (^) nebo zavináč (@); v Turbo Pascalu se zavináč naopak používá pro získání adresy. V jazyce C se operátor dereference někdy nazývá indirection operator a používá se pro něj symbol hvězdička (*). V mnoha skriptovacích jazycích se pro dereferenci používá symbol dolar ($), který primárně slouží pro vyhodnocení obsahu proměnné.

Příklady použití

Jazyk C

Aplikací operátoru dereference na proměnnou, která je ukazatelem, je l-hodnota ekvivalentní hodnotě na adrese, na kterou ukazuje ukazatel. Tomuto se říká „dereferencování“ ukazatele. Například následující kód v jazyce C přiřadí hodnotu 1 do proměnné x použitím operátoru dereference:

 int x;
 int *p;  // použití * v deklaraci:
          // p je ukazatel na integer, takže (po dereferencování)
          // *p je integer
 x = 0;
 // nyní x == 0
 p = &x;  // & získá adresu proměnné x
 // nyní *p == 0, protože p == &x a proto *p == x
 *p = 1;  // toto je ekvivalentem x = 1, protože p == &x
 // nyní *p == 1 a x == 1

Vícenásobné použití

V jazycích C a C++ mohou ukazatelé ukazovat na ukazatele, a v takovém případě jsou potřebné vícenásobné aplikace operátoru dereference. Unární operátor * se pak v případech vícenásobných dereferencí může používat opakovaně. Podobně operátor tečka v jazyce Java lze používat při vytváření složitých výrazů, které při vyhodnocování vyžadují opakované dereferencování ukazatelů.

Jedním z příkladů vícenásobného použití dereference je práce s parametrem argv funkce main, který je v prototypu definován jako char **argv. Běhová knihovna jazyka C uloží jméno, pod kterým byl vyvolán program, a parametry zadané za jménem programu na příkazovém řádku, jako samostatné znakové řetězce. Každý řetězec je reprezentován ukazatelem na char, a jejich pole je předané do funkce main jako parametr argv. Předání pole se uskutečňuje předáním ukazatele na první prvek, takže argv je ve skutečnosti ukazatel na ukazatel na char, i když má význam pole ukazatelů na char. Protože délku pole (počet řetězců v poli) nelze při předání ukazatele zjistit, je tato hodnota předána jako druhý parametr funkce main, argc. Takže argv je ukazatel na 0. prvek pole ukazatelů na char, tj. *argv, který je zase ukazatelem na **argv, což je 0. znak 0. argumentu, kterým je jméno programu.

Jiná syntaxe

V předchůdci jazyka C, v jazyce BCPL, se pro dereferenci používá symbol vykřičník.

V jazyce C se adresa struktury (nebo unionu) s označuje &s. Adresa operátoru & je inverzní operátor k dereferenci *, takže *&s je ekvivalentem s. Adresa struktury (nebo unionu) s může být přiřazena do ukazatele p:

 p = &s; // adresu s ulož do p; p == &s;
 // *p je ekvivalentem s

Pro přístup k položce a struktury s se používá s.a. Je-li dán ukazatel p na s (tj. p == &s), pak zápis s.a je ekvivalentem (*p).a, což lze zkrátit na p->a, což je syntaktický cukr pro přístup k položkám struktury (nebo unionu) pomocí ukazatele:

 p = &s; // ulož adresu s do p; p == &s;
 // s.a je ekvivalentem (*p).a
 // s.a je ekvivalentem p->a
 // (*p).a je ekvivalentem p->a

Operátory -> lze řetězit; například ve spojovém seznamu se lze pomocí n->next->next odkazovat na následníka následníka uzlu (za předpokladu, že n->next není null).

V unixových shellových skriptech a programech jako make se znak dolar ($) používá jako operátor pro získání hodnoty proměnné, který se při přiřazování do proměnné nepíše.

V různých jazycích se v identifikátorech používají prefixy známé jako sigily. Nejde o unární operátory – syntakticky jsou lexikální částí identifikátoru, a mají jinou sémantiku, např. indikují typ identifikátoru – ale jsou syntakticky podobné operátoru dereference a mohou se s nimi plést. Například in shellovém skriptu $FOO je operátor dereference $ aplikován na proměnnou FOO, zatímco v Perlu $foo je proměnná nazývaná foo. V PHP je FOO konstanta (definovaná uživatelem nebo vestavěná), $FOO je proměnná s jménem FOO a $$FOO je proměnná, jejíž jméno je uloženo v proměnné se jménem FOO.

Odkazy

Reference

V tomto článku byl použit překlad textu z článku Dereference operator na anglické Wikipedii.

Související články

Read other articles:

Disambiguazione – Se stai cercando altri significati, vedi Liverpool (disambigua). Questa voce o sezione sull'argomento Regno Unito è priva o carente di note e riferimenti bibliografici puntuali. Sebbene vi siano una bibliografia e/o dei collegamenti esterni, manca la contestualizzazione delle fonti con note a piè di pagina o altri riferimenti precisi che indichino puntualmente la provenienza delle informazioni. Puoi migliorare questa voce citando le fonti più precisamente. Liverpo...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Februari 2023. Goldenes Dachl di in Innsbruck, Austria. Goldenes Dachl (Atap Emas) adalah sebuah struktur yang terletak di kota tua Innsbruck, Austria. Struktur yang selesai dibangun pada tahun 1500 ini merupakan marka tanah kota Innsbruck. Atapnya didekorasi oleh 2...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Amelia Earhart – berita · surat kabar · buku · cendekiawan · JSTOR (Agustus 2018) Amelia EarhartAmelia Mary Earhart tahun 1935Lahir(1897-07-24)24 Juli 1897Atchison, Kansas, ASMenghilang2 Juli 1937 (pada umur&...

Raden Kian Santang: Prahara di Langit PajajaranGenre Drama Laga Fantasi Religi PembuatMNC PicturesSkenario Sakti Wibowo (Eps. 1—10, 54—57) Apud Saepudin (Eps. 10—53, 58—61) Wanto Sabang (Eps. 61—82) Sinta Rianasari (Eps. 83—85) Sutradara Emil G. Hampp (Eps. 1—58) Jhony TRK (Eps. 59—85) Sutradara laga Roni Sundah (Eps. 1—58) Wasikun (Eps. 59—85) Pemeran Alwi Assegaf Ananda George Suheil Fahmi Rientammy Masaji Wijayanto Penggubah lagu temaSayyid Alwi Assegaf ft. SyarifLagu ...

 

Alba an Àigh!B. Indonesia: Skotlandia yang berani!Lagu kebangsaan  SkotlandiaPenulis lirikCliff Hanley (tidak resmi), 1950KomponisKomposer tidak diketahui, 1911Sampel audioScotland the Brave (instrumental)berkasbantuan Sampel audioScotland the Braveberkasbantuan Scotland the Brave (Scottish Gaelic: Alba an Àigh) adalah sebuah lagu patriotik Skotlandia. Ini merupakan salah satu dari beberapa lagu yang diakui sebagai lagu kebangsaan tidak resmi Skotlandia (yang lain merupakan Flowe...

 

North America's oldest long distance road race Around the Bay Road RaceDateLate MarchLocationHamilton, Ontario, CanadaEvent typeRoadDistance30K,[a] 5K, 10K, 15KPrimary sponsorCNBeneficiarySt. Joseph's Healthcare FoundationEstablished1894; 130 years ago (1894)Course recordsMen (1:32:22) Alene Reta Women (1:44:40) Lanni MarchantOfficial sitebayrace.com Winner Jim Duffy (1912) on the bridge over Burlington Canal. The Around the Bay Road Race (ATB) is a long distance roa...

The Austro-Hungarian Navy (Kaiserliche und Königliche Kriegsmarine, shortened to k.u.k. Kriegsmarine) built a series of U-boats between 1907 and 1918 to defend its coastline and project naval power into the Adriatic and Mediterranean Seas in wartime. With the establishment of the Austrian Naval League in September 1904 and the appointment of Vice-Admiral Rudolf Montecuccoli to the post of Chief of the Naval Section of the War Ministry in October that same year, the k.u.k. Kriegsmarine began...

 

Wareham Dermaga Wareham Population 5.496 (Paroki kota)8.270 (kedua paroki) Ref. grid OS SY923873 Paroki sipil Kota Wareham Otoritas uniter Dorset County seremonial Dorset Region Negara konstituen Inggris Negara berdaulat Britania Raya Kota pos WAREHAM Distrik kode pos BH20 Kode telepon 01929 Polisi Pemadam kebakaran Ambulans Parlemen UE Inggris Barat Daya Parlemen Britania Raya Mid Dorset and North Poole Daftar tempat: Britania Raya ...

 

English lawyer and Conservative politician This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Henry Matthews, 1st Viscount Llandaff – news · newspapers · books · scholar · JSTOR (January 2023) (Learn how and when to remove this message) The Right HonourableThe Viscount LlandaffPC KCLord Llandaff, circa 1890Home...

Ground warfare branch of the Armed Forces of the Philippines This article is about the Philippine Army of today. For the revolutionary force that existed from March 1897 to November 1899, see Philippine Revolutionary Army. Philippine ArmyHukbong Katihan ng PilipinasFoundedDecember 21, 1935; 88 years ago (1935-12-21)Country PhilippinesTypeArmyRoleGround WarfareSize 101,250 active personnel[1] 1.2M ready reserves[2] Part of Armed Forces of the Philipp...

 

British crown colony in North AmericaThis article is about the original mainland colony. For the second colony of this name, which was a union of the former Vancouver Island and British Columbia colonies, see Colony of British Columbia (1866–1871). Colony of British Columbia1858–1866 FlagAnthem: God Save the QueenThe Colony of British Columbia in 1863StatusBritish colonyCapitalFort Langley (1858–1859)New Westminster (1859–1866)Common languagesEnglish (official)Northern Athab...

 

Artikel atau sebagian dari artikel ini mungkin diterjemahkan dari Infinitesimal di en.wikipedia.org. Isinya masih belum akurat, karena bagian yang diterjemahkan masih perlu diperhalus dan disempurnakan. Jika Anda menguasai bahasa aslinya, harap pertimbangkan untuk menelusuri referensinya dan menyempurnakan terjemahan ini. Anda juga dapat ikut bergotong royong pada ProyekWiki Perbaikan Terjemahan. (Pesan ini dapat dihapus jika terjemahan dirasa sudah cukup tepat. Lihat pula: panduan penerjemah...

Para el municipio colombiano, véase Pesca (Boyacá). Pescador con red en Srah Srang, Angkor, Camboya. Pesca artesanal en la Isla de Margarita, Venezuela. Pescadores en el río Saigón, Ciudad Ho Chi Minh, Vietnam. ¡Y aún dicen que el pescado es caro! (1894), obra de Joaquín Sorolla, Museo del Prado. La pesca se define como aquel oficio o arte[1]​ que se realiza para capturar peces. Puede realizarse en aguas continentales o marítimas. Ancestralmente, la pesca ha consistido en una d...

 

Screw drive with 6-lobed star-shaped flower-petal pattern Star key redirects here. For the key on a telephone keypad, see asterisk § Telephony. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Torx – news · newspapers · books · scholar · JSTOR (March 2013) (Learn how and when to remove this message) A s...

 

American streaming television network Television channel Fox WeatherCountryUnited StatesBroadcast areaWorldwideHeadquarters 1211 Avenue of the Americas New York City, New York 10036 U.S. ProgrammingLanguage(s)EnglishOwnershipOwnerFox CorporationParentFox News MediaSister channelsFox NewsFox BusinessFox Broadcasting CompanyLiveNOW from FoxHistoryLaunchedOctober 25, 2021; 2 years ago (2021-10-25)LinksWebsitefoxweather.comAvailabilityTerrestrialFox Television StationsList of Fo...

2002 film score by John WilliamsMinority Report (Original Motion Picture Score)Film score by John WilliamsReleasedJune 18, 2002Recorded2002StudioSony Scoring StageCulver City, CaliforniaGenreFilm scoreLength73:56LabelDreamWorksJohn Williams chronology Star Wars Episode II: Attack of the Clones(2002) Minority Report(2002) Harry Potter and the Chamber of Secrets(2002) Minority Report (Original Motion Picture Score) is the score album to the 2002 film of the same name directed by Steven...

 

Pour les articles homonymes, voir Le Grand. Ne doit pas être confondu avec Yves Legrand. Yves Le GrandYves Le Grand en 1973FonctionsDirecteur du Muséum national d'histoire naturelle1971-1975Vice-présidentCommission internationale de l'éclairage1967-1971ÉditeurVision Research (en)1961-1977Secrétaire (d)Commission internationale de l'éclairage1955-1967BiographieNaissance 31 mars 190817e arrondissement de Paris[1]Décès 20 janvier 1986 (à 77 ans)VersaillesNom de naissance Yve...

 

伍迪艾倫獲獎與提名名單 Woody Allen 獎項 獲獎 提名 奧斯卡金像獎 5 24 英國電影學院獎 9 22 金球獎 2 13 伍迪·艾倫獲獎與提名列表是紀錄伍迪·艾倫在他漫长的电影生涯中所获得的荣誉与奖项,涵盖各大电影节与颁奖典礼。[1] 西班牙城市奥维耶多为伍迪·艾伦竖立的等身雕像 1978年,艾伦的短篇小说《库格麦斯插曲》[2](The Kugelmass Episode)获得了欧·亨利奖。《库格...

Eucharistic hymn by Thomas Aquinas Part of a series onThomas Aquinas Thomism Scholasticism Apophatic theology Aseity Divine simplicity Quinque viae Beatific vision Actus purus Actus essendi Primum Movens Sacraments Correspondence theory Hylomorphism Substance theory (ousia) Substantial form Quiddity (essence / accident nature) Peripatetic axiom Principle of double effect Aristotelian ethics Cardinal / Theological Natural law Determinatio Just war Just price Concupi...

 

جبل كاترينمعلومات عامةالبلد  مصر المكان محافظة جنوب سيناء جزء من شبه جزيرة سيناء الجغرافياالإحداثيات 28°30′39″N 33°57′19″E / 28.5108°N 33.9553°E / 28.5108; 33.9553 الارتفاع 2٬637 متر — 2٬629 متر[1] النتوء 2٬404 متر علم الأرضالقارة إفريقيا السلسلة الجبلية سلسلة جبال سيناء النوع ج...