Un 'array' lo possiamo vedere come un insieme di dati 'omogeneo' ovvero un insieme di elementi del medesimo tipo. in C e C++ esso è allocato in memoria come un unico blocco, per cui se ad esempio definisci un array di 10 'int' esso verrà allocato in memoria come un 'blocco di dati' grande 40 byte (dato che un 'int' occupa 4byte, 10x4=40). un esempio:
int iArray[20]; //sto definendo un array di 20 'int'
char cArray[10]; //sto definendo un array di 10 'char'
è possibile accedere ad ogni elemento dell'array attraverso la notazione [indice] , dove indice va da 0 a N-1, con N dimensione dell'array:
int numeri[15]; //definisco un array di 15 'int' , per cui l'indice va da 0 a 14
numeri[0]=3; //assegno al primo elemento dell'array il valore 3;
numeri[14]=2; assegno all'ultimo elemento dell'array il valore 2;
numeri[10]=4; //assegno all'undicesimo elemento il valore 4;
Un 'puntatore' invece è un tipo di dato che contiene indirizzi di memoria per il tipo di dato con cui esso viene definito:
int a=32; //definisco ed inizializzo una variabile con il valore 32
int *pInt = &a; //definisco un puntatore ad 'int' e lo inizializzo con l'indirizzo in memoria della variabile 'a'
i puntatori sono strumenti molto potenti in C++, per cui bisogna utilizzarli nella giusta maniera.