Nederlandse leereditie
Arrays van pointers in C
Onderscheid arrays van pointers, pointers naar arrays en tekenreeksen.

int *p[3] declareert drie pointers naar int; int (*p)[3] declareert een pointer naar een array van drie gehele getallen. Haakjes veranderen de groepering en betekenis.
Elk element moet vóór derefereren een geldig adres bevatten. Objecten mogen ver uit elkaar liggen, maar moeten tijdens gebruik bestaan. Zet het argument voor een adres met %p om naar void *.
Een array van tekenreekspointers is geen rechthoekige tekenmatrix. Gebruik const char * voor letterlijke tekenreeksen en wijzig ze niet. Teken pointers en objecten om de voorstelling te controleren.
Broncode
#include <stdio.h>
int main(void)
{
int first = 10;
int second = 20;
int third = 30;
int *items[] = {&first, &second, &third};
size_t count = sizeof items / sizeof items[0];
*items[1] = 25;
for (size_t i = 0; i < count; ++i) {
printf("items[%zu] points to %d\n", i, *items[i]);
}
printf("second is now %d\n", second);
return 0;
}Openen in de compilerVeelgestelde vragen
Waarom blijven code en sommige resultaten Engels?
C-sleutelwoorden, namen, programmacommentaar en verwachte uitvoer blijven gelijk aan het origineel om uitvoerbare code en consistente tests te behouden. Uitleg en instructies zijn vertaald.