Voordelen & Nadelen van Pointers

Afhankelijk van wie je het vraagt, pointers zijn ofwel een zegen of een vloek.Pointers bieden een mechanisme voor directe toegang en wijzigen van objecten en code in het geheugen.Aanwijzers worden gebruikt in vele programmeertalen voor het manipuleren van tekenreeksen, parameters doorgeven aan functies hanteren gegevensmatrices en creëren gekoppelde lijsten of andere complexe gegevensstructuren.Terwijl pointers bieden u een grote mate van flexibiliteit voor het beheer van het geheugen en het optimaliseren van algoritmes, zijn er nadelen.Leren om pointers te gebruiken is moeilijk voor veel programmeurs, en debuggen wijzer problemen is uitdagend.

Optimization

  • Pointers bieden een performance voordeel doordat u rechtstreeks toegang tot de computer geheugen.In een computerprogramma, de snelste manier om toegang te krijgen tot en wijzigen van een object is om direct toegang te krijgen tot het fysieke geheugen, waar het object wordt opgeslagen.Deze techniek wordt vaak gebr

    uikt om algoritmes vereisen frequente of herhaalde toegang tot grote hoeveelheden gegevens te optimaliseren.

Veiligheid

  • Directe toegang tot het geheugen betekent dat je dingen die misschien moet je niet doen.Afhankelijk van de taal, de compiler en de computer platform, kon je per ongeluk (of met opzet) toegang geheugen dat is niet aan jou om te openen.Als gevolg daarvan kon je kritische geheugen overschrijven, de code van een actieve toepassing te wijzigen, of ervoor zorgen dat uw aanvraag of een andere toepassing te gedragen of uitgang onverwacht.Een veel voorkomende fout lopen voorbij het einde van een array, de toegang tot geheugen buiten het einde van de ruimte die array toegewezen.

Memory Management

  • Managing geheugengebruik in een toepassing met behulp van pointers biedt flexibiliteit, maar is ook een karwei.De verdeling en de deallocating geheugen nodig tijdens runtime kunt u grote objecten, zoals arrays te creëren, snel en direct te bevrijden van het geheugen als het niet langer nodig is.Het is echter ook gemakkelijk om geheugenlekkages veroorzaken door herschikking van een pointer zonder het geheugen vrijgeeft zij wees eerst.Garbage collection is uw verantwoordelijkheid.

Functie Parameters

  • functies kan slechts één waarde terug te keren, maar ze kunnen meerdere parameters te nemen.Door passeren pointers variabelen als parameters, kan een functie worden gebruikt om de waarden van deze variabelen en de nieuwe waarden blijven na de functie terugkeert.Het kunnen de waarde van enkele variabelen een keer met een enkele functie oproep schoon en efficiënt.Echter, het kan een beetje verwarrend om te lezen, omdat je niet kunt zien of de variabelen doorgegeven niet zal worden gewijzigd of gewoon door te kijken naar de functie aan te roepen zijn.U moet kijken naar de functie documentatie om te leren hoe de functie gedraagt.

Functie Pointers

  • Pointers zijn niet alleen voor objecten in het geheugen;ze kunnen ook worden gebruikt voor functies, waardoor een functie wordt doorgegeven als een parameter aan een andere functie.Een functie pointer kan het adres van een van de keuze van functies worden toegewezen, zodat de aanwijzer fungeert als een soort alias.Objectgeoriënteerde programmeertalen hebben de noodzaak van functie pointers met overerving en polymorfisme geëlimineerd.

Pointer Verwarring

  • Pointers zijn een verwarrend onderwerp voor veel programmeurs, met name die met ervaring in het gebruik van talen die niet pointers en directe toegang tot het geheugen niet voorzien.Echter, doorzettingsvermogen leidt al snel tot beheersing van pointers.Wijzers gaan vaak gepaard met obscure syntax.Consistente variabele naamgeving kan helpen uw code beter leesbaar.Bijvoorbeeld, omvatten gemeenschappelijke naamgeving gebruiken "p " of "PTR " als voorvoegsel aan de variabele namen pointer.

Tips

  • Gebruik altijd de toewijzing van functies die door de taal voor de toewijzing van het geheugen, en controleer of het geheugen is voordat u deze toegewezen.Wees voorzichtig met memory management en geheugen vrij te maken wanneer het niet langer nodig is.Als u een verwijzing naar een nieuwe geheugen-adres toewijzen, zorg ervoor dat het oude geheugen wordt vrijgemaakt of toegewezen aan een andere pointer.Zorg ervoor dat pointers die in functies worden toegewezen eigendom aan de ouder reikwijdte of het geheugen deallocated voordat de functie verlaten.

Resources

  • Stanford CS Onderwijs Bibliotheek: Pointers en Memory
  • Cprogramming.com: An Introduction to Pointers
  • Pointer Voorbeelden
202
0
2
Computer Programmeertalen