C och C + +-programmering språk är två av ett fåtal som fortfarande är starkt beroende av indirekt minne tillgång . Detta är konceptet att ett minne variabel kan hålla placeringen av ett annat minne variabel - och denna variabel är känd som en pekare. Även om detta låter förvirrande , är det ett kraftfullt verktyg som används för att implementera arrayer , länkade listor , träd och andra datastrukturer . Här är en kort introduktion till pekare och arrayer . Saker du behöver
C + + språket , såsom Visual C + + Express , Visual Studio eller C + + Builder
Visa fler instruktioner
1
Skapa en ny C + + -program . Använda Visual Studio 2010 Windows konsol ansökan mall , kommer koden börja så här :
# include " stdafx.h "
int _tmain ( int argc , _TCHAR * argv [ ] ) katalog
{
Ange återstående koden i programmet som det visas hela berättelsen nedan .
2
Skapa och skriva ut en ny pekare teckensträng som följer .
char * c = " Hej ";
printf ( " % s \\ n " , c ) ;
asterisk ( * ) före variabeln c anger att detta är en pekarvariabel . Variabel c innehåller minnesplats där textsträngen 'Hello ' lagrades av kompilatorn . Den printf funktionen använder pekaren c för att lokalisera denna sträng och visa dem till konsolen .
3
Lägg till en ny array av heltal i minnet .
Int * n = new int [ 5 ] ;
en ny pekare n förklaras att peka på ett heltal array . Den nya funktionen skapar en ny array med fem heltal och placeringen av denna array lagras i pekaren p .
4
Fyll arrayen med siffrorna 1 till 5 med en andra pekare för att flytta genom . array
int * p = n;
int i;
for (i = 1 ; i < 6 , i + + ) katalog
{ * p = i ;
p + + ;
}
pekaren P deklareras och inställd på samma värde som N , i början av arrayen . Eftersom slingan upprepas fem gånger , påpekade minnesplats till med p erhåller värdet på räknaren , sedan pekaren ökas , flytta till nästa element i arrayen . Observera att p + + uttalande steg pekaren p av storleken av heltal , flytta till varje cell i matrisen .
5
Visa värden i arrayen till konsolen med hjälp av ett index i arrayen .
for (i = 0 ; i < 5 , i + + ) katalog
{ printf ( " % d \\ n " , n [ i] ) ;
}
Återigen , loopar programmet fem gånger, varje gång med printf -funktionen för att skicka innehållet i minnesplatser pekas av n [ i] till konsolen . Denna gång programmet använder index notation tillsammans med pekaren att röra sig genom matrisen . I C + + , arrayer är noll - baserade , så räknaren flyttas från 0 till 4
6
Avsluta programmet
delete n; . .
Avkastning 0 ;
}
bort arrayen från minnet med delete -funktionen . I C + + , måste varje minne som tilldelats av nya utgå för att förhindra minnesläckor . Slutligen , returnera 0 för att indikera att programmet slutförts .