De C -en C + + programmeertalen zijn twee van de weinige die nog steeds sterk afhankelijk zijn van indirecte toegang geheugen . Dit is het concept dat een geheugenvariabele de locatie van andere geheugenvariabele kan houden - en deze variabele is bekend als een pointer . Hoewel dit klinkt verwarrend , het is een krachtig instrument dat wordt gebruikt om arrays , gelinkte lijsten , bomen en andere datastructuren implementeren . Hier is een korte introductie van pointers en arrays . Wat je nodig hebt C + + taal , zoals Visual C + + Express , Visual studio of C + + Builder Toon Meer Aanwijzingen 1 Maak een nieuwe C + + -programma . Met behulp van Visual Studio 2010 Windows console applicatie template , wordt de code als volgt beginnen : # include " stdafx.h " int _tmain ( int argc , _TCHAR * argv [ ] ) op Twitter { Voer de rest van de code in het programma als het hele verhaal hieronder weergegeven . kopen van 2 maken en afdrukken van een nieuwe tekenreeks pointer als volgt . char * c = "Hello " ; printf ( " % s \\ n " , c ) ; asterisk ( *) voor de variabele c geeft aan dat dit een pointer variabele . Variabele c bevat het geheugen locatie waar de tekenreeks 'Hello ' werd opgeslagen door de compiler . De printf functie gebruikt de pointer c om deze string te lokaliseren en weer te geven op de console . 3 Voeg een nieuwe array van gehele getallen in het geheugen . Int * n = nieuwe int [ 5 ] ; een nieuwe pointer n wordt verklaard om te wijzen op een integer array. De nieuwe functie maakt een nieuwe reeks van vijf getallen en de locatie van deze array wordt opgeslagen in de pointer p . 4 Laad de array met de getallen 1 tot 5 met een tweede wijzer om door de . scala int * p = n ; int I; for (i = 1 ; i < 6 ; i + + ) op Twitter { * p = i ; p + + ; } de wijzer p wordt verklaard en ingesteld op dezelfde waarde als n , het begin van de array . Als de lus herhaald vijf keer de geheugenplaats aangewezen door p ontvangt de waarde van de teller , wordt de aanwijzer wordt verhoogd , beweegt naar het volgende element van de array. Merk op dat de p + + statement stappen pointer p door de grootte van het gehele getal , bewegen met elke cel van de matrix . 5 tonen de waarden in de matrix van de console met een index in de array. < br > for (i = 0 ; i < 5 ; i + + ) op Twitter { printf ( " % d \\ n " , n [ i ] ) ; } Ook het programma lussen vijf maal , telkens met de printf functie om de inhoud van geheugenplaatsen opgemerkt door n [ i ] om de console te verzenden . Deze keer het programma gebruikt de index notatie , samen met de aanwijzer om door de array . In C + + , arrays zijn gebaseerd op nul , zodat de teller beweegt 0-4 End 6 het programma delete n ; . . Return 0 ; } Verwijder de array uit het geheugen met behulp van de functie te verwijderen . In C + + , moet elke geheugen door het nieuwe toegewezen worden verwijderd om geheugen lekken te voorkomen . Tot slot , terug 0 aan te geven dat het programma met succes afgerond .
|