Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Výhody a nevýhody Ukazovatele

V závislosti na tom , koho sa spýtate , ukazovatele sú buď požehnanie alebo prekliatie . Ukazovatele poskytujú mechanizmus pre priamy prístup a úpravy objektov a kódu v pamäti . Ukazovatele sa používajú v mnohých programovacích jazykoch pre manipuláciu reťazca znakov , odovzdávanie parametrov funkciám , manipuláciu polí dát a vytvorenie prepojených zoznamov a iných zložitých dátových štruktúr . Kým ukazovatele poskytnúť vám s veľkou flexibilitu pre správu pamäte a optimalizáciu algoritmov , tam sú nevýhody . Naučiť sa používať ukazovatele je ťažké pre mnoho programátorov , a problémy ladenie ukazovateľ je náročné . Optimalizácia

ukazovatele poskytujú výkonnostný výhodu tým , že umožňuje prístup k pamäti počítača priamo . V počítačovom programe , najrýchlejší spôsob , ako získať prístup a upraviť objekt , je priamy prístup k fyzickej pamäti , kde je tento objekt uložený . Táto technika sa bežne používa k optimalizácii algoritmov , ktoré vyžadujú časté alebo opakujúce sa prístup k veľkému množstvu dát .
Security

Priamy prístup do pamäte znamená , že môžete robiť veci , ktoré ste možno nemal . V závislosti na jazyku , prekladača a počítačové platforme , môžete neúmyselne ( alebo zámerne ) , prístup do pamäti , že nie je váš prístup . Ako výsledok , môžete prepísať kritické pamäti , upravte kód bežiace aplikácie , alebo spôsobiť , že aplikácie alebo iné aplikácie , aby sa choval alebo neočakávane ukončiť . Jedna obyčajná chyba je bežať za koniec poľa , prístup k pamäti za koncom priestoru prideleného pre dané pole .
Memory Management

riadenie využitia pamäte v aplikácii pomocou ukazovateľov ponúka flexibilitu , ale je tiež fuška . Prideľovanie a navrátenie pamäť podľa potreby za behu umožňuje vytvárať veľké objekty , ako sú polia , rýchlo a okamžite uvoľniť pamäť , ak je už nepotrebujete . Avšak , to je tiež ľahko vytvoriť pretečeniu pamäte pomocou priradenia ukazovatele bez uvoľnenia pamäti , že sa ukázal ako prvý . Garbage collection je vaša zodpovednosť .
Funkčné parametre

Funkcie môžu vracať iba jednu hodnotu , ale môže trvať niekoľko parametrov . Odovzdaním v odkazy na premenné ako parametre , funkcia môže byť použitá na nastavenie hodnoty týchto premenných , a nové hodnoty budú pretrvávať po funkcie vráti . Byť schopný nastaviť hodnoty niekoľkých premenných naraz s jedným volaním funkcie je čisté a efektívne . Avšak , to môže byť trochu mätúce čítať , pretože nemôžete povedať, či premenné odovzdané v bude upravený alebo nie púhym pohľadom na volanie funkcie . Budete musieť pozrieť na dokumentáciu funkcie sa dozviete , ako funkcie chová
ukazovateľov funkcií

ukazovatele nie sú len pre objekty v pamäti , . Môžu byť taktiež použité pre funkcie , čo umožňuje funkcie , ktoré majú byť odovzdaný ako parameter inej funkcie . Ukazovateľ funkcie môže byť priradená adresa jedného z voľby funkcií tak , že ukazovateľ sa chová ako druh alias . Objektovo - orientované programovacie jazyky majú odstránil potrebu pre ukazovatele funkcií s dedičnosti a polymorfizmu .
Pointer zmätenosť

ukazovatele sú mätúce témou pre mnoho programátorov , najmä tých , ktoré zažili pri používať jazyky , ktoré nemajú funkciu ukazovatele a priamy prístup do pamäte . Avšak , vytrvalosť rýchlo vedie k osvojeniu ukazovateľov . Ukazovatele sú často sprevádzané obskurní syntaxe . Konzistentné pomenovanie premenných môže pomôcť váš kód bude čitateľnejší . Napríklad bežné konvencie zahŕňajú použitie " P_ " alebo " ptr_ " ako prefix pre ukazovateľ názvy premenných .
Tipy

Vždy používajte funkcie alokačnej poskytované jazyk pre pamäť pridelenie , a skontrolujte , či je pamäť bola pridelená pred použitím . Buďte opatrní pri správe pamäti , a uvoľniť pamäť , keď už nie je potreba . Ak máte priradiť ukazovateľ na novú adresu v pamäti , uistite sa , že starý pamäť je uvoľnená alebo je pridelený na iné ukazovatele . Uistite sa , že ukazovatele vytvorené funkcií sú priradené vlastníctva na materskej rozsahu alebo že pamäť je uvoľniť pred ukončením funkcie .

Najnovšie články

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