C++-Arrays
C++-Arrays
In diesem Tutorial lernen wir, mit Arrays zu arbeiten. Wir werden anhand von Beispielen lernen, Array-Elemente in der C++-Programmierung zu deklarieren, zu initialisieren und darauf zuzugreifen.
In C++ ist ein Array eine Variable, die mehrere Werte desselben Typs speichern kann. Zum Beispiel
Angenommen, eine Klasse hat 27 Schüler und wir müssen die Noten von allen speichern. Anstatt 27 separate Variablen zu erstellen, können wir einfach ein Array erstellen:
double grade[27];
Hier, note ist ein Array, das maximal 27 Elemente von double
enthalten kann Typ.
In C++ können die Größe und der Typ von Arrays nach ihrer Deklaration nicht geändert werden.
C++-Array-Deklaration
dataType arrayName[arraySize];
Zum Beispiel
int x[6];
Hier,
int
- Art des zu speichernden Elements- x - Name des Arrays
6
- Größe des Arrays
Zugriff auf Elemente im C++-Array
In C++ ist jedem Element in einem Array eine Zahl zugeordnet. Die Zahl wird als Array-Index bezeichnet. Wir können auf Elemente eines Arrays zugreifen, indem wir diese Indizes verwenden.
// syntax to access array elements
array[index];
Betrachten Sie das Array x wir oben gesehen haben.
Ein paar Dinge, die Sie sich merken sollten:
- Die Array-Indizes beginnen mit
0
. Bedeutung x[0][var> ist das erste Element, das am Index0
gespeichert wird . - Wenn die Größe eines Arrays
n
ist , das letzte Element wird am Index(n-1)
gespeichert . In diesem Beispiel x[5][var> ist das letzte Element. - Elemente eines Arrays haben fortlaufende Adressen. Angenommen, die Startadresse ist beispielsweise
x[0]
ist 2120d. Dann die Adresse des nächsten Elementsx[1]
wird 2124d sein, die Adresse vonx[2]
wird 2128d sein und so weiter.
Hier wird die Größe jedes Elements um 4 erhöht. Dies liegt an der Größe vonint
ist 4 Bytes.
C++-Array-Initialisierung
In C++ ist es möglich, ein Array während der Deklaration zu initialisieren. Zum Beispiel
// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};
Eine andere Methode, um ein Array während der Deklaration zu initialisieren:
// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};
Hier haben wir die Größe des Arrays nicht erwähnt. In solchen Fällen berechnet der Compiler automatisch die Größe.
C++-Array mit leeren Membern
In C++, wenn ein Array die Größe n
hat , können wir bis zu n speichern Anzahl der Elemente im Array. Was passiert jedoch, wenn wir weniger als n speichern? Anzahl der Elemente.
Zum Beispiel
// store only 3 elements in the array
int x[6] = {19, 10, 8};
Hier das Array x hat eine Größe von 6
. Allerdings haben wir es mit nur 3 Elementen initialisiert.
In solchen Fällen weist der Compiler den verbleibenden Stellen zufällige Werte zu. Oftmals ist dieser zufällige Wert einfach 0
.
Wie füge ich Array-Elemente ein und drucke sie?
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[0];
// print ith element of the array
cout >> mark[i-1];
Beispiel 1:Anzeigen von Array-Elementen
#include <iostream>
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 << "\nThe numbers are: ";
// Printing array elements
// using traditional for loop
for (int i = 0; i < 5; ++i) {
cout << numbers[i] << " ";
}
return 0;
}
Ausgabe
The numbers are: 7 5 6 12 35 The numbers are: 7 5 6 12 35
Hier haben wir einen for
verwendet Schleife, um von i = 0
zu iterieren bis i = 4
. In jeder Iteration haben wir numbers[i]
gedruckt .
Wir haben wieder eine bereichsbasierte for-Schleife verwendet, um die Elemente des Arrays auszugeben. Weitere Informationen zu dieser Schleife finden Sie unter C++ Ranged for Loop.
Hinweis: In unserer bereichsbasierten Schleife haben wir den Code const int &n
verwendet statt int n
als Bereichsdeklaration. Allerdings ist die const int &n
wird mehr bevorzugt, weil:
- Mit
int n
kopiert einfach die Array-Elemente in die Variable n während jeder Iteration. Dies ist nicht speichereffizient.
&n verwendet jedoch die Speicheradresse der Array-Elemente, um auf ihre Daten zuzugreifen, ohne sie in eine neue Variable zu kopieren. Dies ist speichereffizient. - Wir drucken einfach die Array-Elemente, ändern sie aber nicht. Daher verwenden wir
const
um die Werte des Arrays nicht versehentlich zu ändern.
Beispiel 2:Benutzereingaben entgegennehmen und in einem Array speichern
#include <iostream>
using namespace std;
int main() {
int numbers[5];
cout << "Enter 5 numbers: " << endl;
// store input from user to array
for (int i = 0; i < 5; ++i) {
cin >> numbers[i];
}
cout << "The numbers are: ";
// print array elements
for (int n = 0; n < 5; ++n) {
cout << numbers[n] << " ";
}
return 0;
}
Ausgabe
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
Wieder einmal haben wir einen for
verwendet Schleife, um von i = 0
zu iterieren bis i = 4
. In jeder Iteration haben wir eine Eingabe vom Benutzer genommen und in numbers[i]
gespeichert .
Dann haben wir einen weiteren for
verwendet Schleife, um alle Array-Elemente zu drucken.
Beispiel 3:Summe und Durchschnitt von Array-Elementen mit for-Schleife anzeigen
#include <iostream>
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 << "\nTheir Sum = " << sum << endl;
// find the average
average = sum / count;
cout << "Their Average = " << average << endl;
return 0;
}
Ausgabe
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
In diesem Programm:
- Wir haben ein double initialisiert Array namens Zahlen aber ohne Angabe der Größe. Wir haben auch drei doppelte Variablen sum deklariert , Zählung , und Durchschnitt .
Hier,sum =0
undcount = 0
. - Dann haben wir einen bereichsbasierten
for
verwendet Schleife, um die Array-Elemente zu drucken. In jeder Iteration der Schleife fügen wir das aktuelle Array-Element zu sum hinzu . - Wir erhöhen auch den Wert von count durch
1
in jeder Iteration, sodass wir die Größe des Arrays am Ende der for-Schleife erhalten. - Nachdem wir alle Elemente gedruckt haben, drucken wir die Summe und den Durchschnitt aller Zahlen. Der Durchschnitt der Zahlen wird durch
average = sum / count;
angegeben
Hinweis: Wir haben einen Bereich for
verwendet Schleife anstelle eines normalen for
Schleife.
Ein normales for
Schleife erfordert, dass wir die Anzahl der Iterationen angeben, die durch die Größe des Arrays gegeben ist.
Aber ein Bereich for
Schleife erfordert keine solchen Angaben.
C++-Array außerhalb der Grenzen
Wenn wir ein Array der Größe 10 deklarieren, enthält das Array Elemente von Index 0 bis 9.
Wenn wir jedoch versuchen, auf das Element bei Index 10 oder höher als 10 zuzugreifen, führt dies zu undefiniertem Verhalten.
C Sprache
- C#-Arrays
- C# Mehrdimensionales Array
- C#-gezacktes Array
- C++-Operatoren
- C++-Kommentare
- Übergeben eines Arrays an eine Funktion in der C++-Programmierung
- Java-Kopie-Arrays
- Arrays in C++ | Erklären | Initialisieren | Zeiger auf Array-Beispiele
- C++ Dynamische Zuordnung von Arrays mit Beispiel
- MATLAB - Arrays