In deze tutorial leren we werken met arrays. We zullen met behulp van voorbeelden leren om array-elementen in C ++ - programmeren te declareren, initialiseren en benaderen.
In C ++ is een array een variabele die meerdere waarden van hetzelfde type kan opslaan. Bijvoorbeeld,
Stel dat een klas 27 leerlingen heeft, en we moeten de cijfers van alle leerlingen opslaan. In plaats van 27 afzonderlijke variabelen te maken, kunnen we eenvoudig een array maken:
double grade(27);
Hier is cijfer een array die maximaal 27 elementen van het double
type kan bevatten.
In C ++ kunnen de grootte en het type arrays na de declaratie niet worden gewijzigd.
C ++ Array-verklaring
dataType arrayName(arraySize);
Bijvoorbeeld,
int x(6);
Hier,
int
- type element dat moet worden opgeslagen- x - naam van de array
6
- grootte van de array
Toegang tot elementen in C ++ Array
In C ++ is elk element in een array gekoppeld aan een getal. Het nummer staat bekend als een array-index. We kunnen toegang krijgen tot elementen van een array door die indices te gebruiken.
// syntax to access array elements array(index);
Beschouw de array x die we hierboven hebben gezien.

Enkele dingen om te onthouden:
- De array-indices beginnen met
0
. Dit betekent dat x (0) het eerste element is dat is opgeslagen bij index0
. - Als de grootte van een array is
n
, wordt het laatste element opgeslagen bij index(n-1)
. In dit voorbeeld is x (5) het laatste element. - Elementen van een array hebben opeenvolgende adressen. Stel dat het startadres van
x(0)
2120d is. Het adres van het volgende elementx(1)
is dan 2124d, het adres vanx(2)
zal 2128d zijn, enzovoort.
Hier wordt de grootte van elk element vergroot met 4. Dit komt doordat de grootte vanint
4 bytes is.
Initialisatie van C ++ array
In C ++ is het mogelijk om een array te initialiseren tijdens het declareren. Bijvoorbeeld,
// declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);

Een andere methode om array te initialiseren tijdens declaratie:
// declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);
Hier hebben we de grootte van de array niet genoemd. In dergelijke gevallen berekent de compiler automatisch de grootte.
C ++ Array met lege leden
In C ++, als een array een grootte heeft n
, kunnen we een maximaal aantal elementen in de array opslaan. Wat gebeurt er echter als we minder dan n aantal elementen opslaan?
Bijvoorbeeld,
// store only 3 elements in the array int x(6) = (19, 10, 8);
Hier heeft de array x een grootte van 6
. We hebben het echter geïnitialiseerd met slechts 3 elementen.
In dergelijke gevallen wijst de compiler willekeurige waarden toe aan de resterende plaatsen. Vaak is deze willekeurige waarde eenvoudig 0
.

Hoe array-elementen invoegen en afdrukken?
int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1);
Voorbeeld 1: array-elementen weergeven
#include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )
Uitvoer
De nummers zijn: 7 5 6 12 35 De nummers zijn: 7 5 6 12 35
Hier hebben we een for
lus gebruikt om van i = 0
naar te herhalen i = 4
. In elke iteratie hebben we afgedrukt numbers(i)
.
We hebben opnieuw een op bereik gebaseerde for-lus gebruikt om de elementen van de array af te drukken. Raadpleeg C ++ Ranged for Loop voor meer informatie over deze lus.
Opmerking: in onze op bereik gebaseerde lus hebben we de code gebruikt in const int &n
plaats van int n
als bereikdeclaratie. Het heeft const int &n
echter meer de voorkeur omdat:
- Gebruiken
int n
kopieert eenvoudig de array-elementen naar de variabele n tijdens elke iteratie. Dit is niet geheugenefficiënt.
& n gebruikt echter het geheugenadres van de array-elementen om toegang te krijgen tot hun gegevens zonder ze naar een nieuwe variabele te kopiëren. Dit is geheugenefficiënt. - We drukken gewoon de array-elementen af, niet wijzigen. Daarom gebruiken we om
const
niet per ongeluk de waarden van de array te wijzigen.
Voorbeeld 2: neem input van de gebruiker en sla deze op in een array
#include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )
Uitvoer
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
Once again, we have used a for
loop to iterate from i = 0
to i = 4
. In each iteration, we took an input from the user and stored it in numbers(i)
.
Then, we used another for
loop to print all the array elements.
Example 3: Display Sum and Average of Array Elements Using for Loop
#include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )
Output
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
In this program:
- We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
Here,sum =0
andcount = 0
. - Then we used a range based
for
loop to print the array elements. In each iteration of the loop, we add the current array element to sum. - We verhogen ook de waarde van count met
1
in elke iteratie, zodat we de grootte van de array aan het einde van de for-lus kunnen krijgen. - Nadat we alle elementen hebben geprint, printen we de som en het gemiddelde van alle getallen. Het gemiddelde van de cijfers wordt gegeven door
average = sum / count;
Opmerking: we hebben een afstandslus gebruikt in for
plaats van een normale for
lus.
Een normale for
lus vereist dat we het aantal iteraties specificeren, dat wordt bepaald door de grootte van de array.
Maar een afstandslus for
vereist dergelijke specificaties niet.
C ++ Array buiten bereik
Als we een array van grootte 10 declareren, bevat de array elementen van index 0 tot 9.
Als we echter proberen toegang te krijgen tot het element op index 10 of hoger dan 10, zal dit resulteren in ongedefinieerd gedrag.