Edizione didattica italiana
Array di puntatori in C
Distingui array di puntatori, puntatori ad array e stringhe.

int *p[3] dichiara tre puntatori a int; int (*p)[3] dichiara un puntatore a un array di tre interi. Le parentesi cambiano il raggruppamento e il significato.
Ogni elemento deve contenere un indirizzo valido prima della dereferenziazione. Gli oggetti possono essere lontani, ma devono restare vivi durante l’uso. Per stampare un indirizzo con %p, converti l’argomento in void *.
Un array di puntatori a stringhe non è una matrice rettangolare di caratteri. Usa const char * per i letterali e non modificarli. Disegna puntatori e oggetti per verificare il modello.
Codice sorgente
#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;
}Apri nel compilatoreDomande frequenti
Perché il codice e alcuni risultati restano in inglese?
Parole chiave C, identificatori, commenti del programma e output attesi restano quelli originali per preservare codice eseguibile e test coerenti. Spiegazioni e istruzioni sono tradotte.