C-arrays: Efficiënte dataopslag en toegang
Wat is een array?
Een array is een vaste verzameling elementen van hetzelfde type, opgeslagen in aaneengesloten geheugenlocaties. Toegang via index (0-gebaseerd).
Declaratie
type naam[grootte];
grootte = integer constant > 0. Voorbeeld: double balance[10];
Initialisatie
double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
Grootte weglaten: double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0}; → compiler telt elementen.
Enkel element wijzigen: balance[4] = 50.0; (5e element, index 4).
Elementen benaderen
double salary = balance[9]; // 10e element
Volledig voorbeeld
#include <stdio.h>
int main() {
int n[10];
int i, j;
// initialiseren
for (i = 0; i < 10; i++) {
n[i] = i + 100;
}
// afdrukken
for (j = 0; j < 10; j++) {
printf("Element[%d] = %d\n", j, n[j]);
}
return 0;
}
Element[0] = 100 Element[1] = 101 ... Element[9] = 109
Belangrijke array-concepten
| Concept | Beschrijving |
|---|---|
| Meerdimensionale arrays | Bijv. int matrix[3][4]; (2D). C ondersteunt willekeurige dimensies. |
| Arrays doorgeven aan functies | Doorgeven van pointer naar eerste element: void func(int arr[]) of void func(int *arr). Grootte niet meegegeven! |
| Array retourneren | Niet direct mogelijk. Retourneer pointer naar static array of dynamisch geheugen. |
| Pointer naar array | arr is equivalent aan &arr[0] (pointer naar eerste element). |
Tweedimensionale arrays
int matrix[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
// Toegang: matrix[rij][kolom]
printf("%d", matrix[1][2]); // 6
Arrays en pointers
arr[i]≡*(arr + i)&arr[i]≡arr + i- Array-naam is geen wijzigbare lvalue (kan niet
arr = ptr)
Let op: C doet geen grenscontrole op arrays. Toegang buiten grenzen → ongedefinieerd gedrag (crash, corruptie, beveiligingslek).
C Taal
- Ball Grid Array (BGA) Uitgelegd: Complete Gids voor Hoog-dichtheid PCB-technologie
- C# Arrays: Declaratie, Initialisatie en Operaties
- C# Jagged Arrays: Declaratie, Initialisatie en Toegang
- Arrays doorgeven aan functies in C++: een praktische gids
- Hoe je 1D- en 2D-arrays doorgeeft aan functies in C – Een praktische gids
- De relatie tussen arrays en pointers in C begrijpen
- C++ Arrays Ontmaskerd: Declaratie, Initialisatie en Pointer‑Technieken
- C++ Dynamische Array‑Allocatie: Praktische Handleiding met Code‑Voorbeelden
- MATLAB: Multidimensionale en Speciale Arrays Beheersen
- Java array-kopieertechnieken: een uitgebreide gids
- Java Arrays Tutorial: Declaratie, Creatie en Initialisatie – Voorbeeldcode