Vitajte na [www.pocitac.win] Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy počítačový

Výhody a nevýhody ukazovateľov

V závislosti od toho, koho požiadate, sú ukazovatele buď požehnaním alebo kliatbou. Ukazovatele poskytujú mechanizmus na priamy prístup a úpravu objektov a kódu v pamäti. Ukazovatele sa používajú v mnohých programovacích jazykoch na manipuláciu so znakovými reťazcami, odovzdávanie parametrov do funkcií, spracovanie polí s údajmi a vytváranie prepojených zoznamov a ďalších zložitých štruktúr údajov. Aj keď ukazovatele vám poskytujú veľkú flexibilitu pri správe pamäte a optimalizácii algoritmov, sú tu určité nevýhody. Naučiť sa používať ukazovatele je pre mnohých programátorov ťažké a odlaďovanie problémov s ukazovateľmi je náročné.

Optimalizácia

Ukazovatele poskytujú výhodu výkonu tým, že vám umožňujú priamy prístup k počítačovej pamäti. V počítačovom programe je najrýchlejším spôsobom prístupu a úpravy objektu priamy prístup k fyzickej pamäti, v ktorej je daný objekt uložený. Táto technika sa bežne používa na optimalizáciu algoritmov vyžadujúcich častý alebo opakovaný prístup k veľkému množstvu údajov.

Zabezpečenie

Priamy prístup k pamäti znamená, že môžete robiť veci, ktoré by ste možno nemali. V závislosti od jazyka, kompilátora a počítačovej platformy by ste mohli neúmyselne (alebo úmyselne) získať prístup k pamäti, ku ktorej nemáte prístup. V dôsledku toho by ste mohli prepísať kritickú pamäť, upraviť kód spustenej aplikácie alebo spôsobiť neočakávané správanie alebo ukončenie aplikácie alebo inej aplikácie. Jednou z bežných chýb je spustenie za koniec poľa a prístup k pamäti za koncom priestoru vyhradeného pre toto pole.

Správa pamäte

Správa využitia pamäte v aplikácii pomocou ukazovateľov ponúka flexibilitu, ale je tiež fuška. Priradenie a pridelenie pamäte podľa potreby počas doby vykonávania vám umožňuje vytvárať veľké objekty, ako napríklad polia, rýchlo a okamžite uvoľniť pamäť, keď už nie je potrebná. Je však tiež ľahké vytvoriť úniky pamäte opätovným priradením ukazovateľa bez uvoľnenia pamäte, na ktorú ukazovala ako prvá. Odber odpadu je vašou zodpovednosťou.

Parametre funkcií

Funkcie môžu vrátiť iba jednu hodnotu, ale môžu mať viacero parametrov. Prechodom ukazovateľov na premenné ako parametre sa dá funkcia použiť na nastavenie hodnôt týchto premenných a nové hodnoty budú pretrvávať aj po návrate funkcie. Schopnosť nastaviť hodnotu viacerých premenných naraz pomocou jediného volania funkcie je čistá a efektívna. Čítanie však môže byť trochu mätúce, pretože nemôžete zistiť, či sa odovzdané premenné zmenia alebo nie jednoducho pozeraním na volanie funkcie. Ak sa chcete dozvedieť, ako sa táto funkcia správa, musíte sa pozrieť na dokumentáciu funkcií.

Ukazovatele funkcií

Ukazovatele nie sú len pre objekty v pamäti; môžu sa tiež použiť na funkcie, čo umožňuje, aby sa funkcia preniesla ako parameter na inú funkciu. Ukazovateľu funkcie je možné priradiť adresu jednej z viacerých funkcií tak, aby ukazovateľ pôsobil ako druh aliasu. Objektovo orientované programovacie jazyky eliminovali potrebu funkčných ukazovateľov s dedičnosťou a polymorfizmom.

Zmätok ukazovateľov

Ukazovatele sú mätúcou témou pre mnohých programátorov, najmä tých, ktorí majú skúsenosti s používaním jazykov, ktoré neobsahujú ukazovatele a smerujú. prístup do pamäte. Vytrvalosť však rýchlo vedie k ovládnutiu ukazovateľov. Ukazovatele sú často sprevádzané temnou syntaxou. Konzistentné konvencie pomenovávania premenných môžu pomôcť vášmu čitateľnému kódu. Napríklad, bežné konvencie pomenovávania zahŕňajú použitie „p_“ alebo „ptr_“ ako predponu na označenie premenných.

Tipy

Vždy používajte alokačné funkcie poskytované jazykom na alokáciu pamäte a skontrolujte, či uistite sa, že pamäť bola pridelená pred použitím. Pri správe pamäte buďte opatrní a uvoľnite pamäť, keď už nie je potrebná. Ak zmeníte priradenie ukazovateľa na novú adresu v pamäti, uistite sa, že stará pamäť je uvoľnená alebo priradená inému ukazovateľovi. Pred ukončením funkcie skontrolujte, či sú ukazovatele vytvorené vo funkciách priradené k nadradenému rozsahu alebo či je pamäť uvoľnená.

Copyright © počítačové znalosti Všetky práva vyhradené