sabato, novembre 04, 2006

Array


#include <stdio.h>
#include <stdlib.h>

int main() {

int array_interi[10]; //collezione di dieci interi

/*
Nella dichiarazione di un array, va indicato il numero di elementi
fra le parentesi quadre.
I singoli elementi dell'array sono delle variabili normali a tutti
gli effetti. Ciascuna di esse viene individuata dai primi
interi *** A PARTIRE DA ZERO ***
(in questo caso, quindi, da 0 a 9, 10 escluso!!!)
*/

//il tipico ciclo per "visitare" gli elementi dell'array:
for (int i=0; i<10; i++) { //notare il minore (NON minore-uguale)
array_interi[i]=0; //inizializzazione a zero di ogni elemento dell'array
}


int matrice[4][4]; //array bidimensionale (a due indici)

//il tipico doppio-ciclo per scorrere gli elementi di un array bidimensionale
for (int i=0; i<4; i++) {
for (int j=0; j<4; j++) {
matrice[i][j]=
0;
}
}

//ma il numero di indici puo' essere arbitrario
int tensore[3][4][5][2];
for (int i=0; i<3; i++) {
for (int j=0; j<4; j++) {
for (int k=0; k<5; k++) {
for (int l=0; l<2; l++) {
tensore[i][j][k][l]=
0;
}
}
}
}

/*
E' anche possibile specificare i valori iniziali dei singoli elementi
di un array tramite una dichiarazione "per elencazione":
*/
int esiti_dado[6] = {1, 2, 3, 4, 5, 6};
int matrice_unita[3][3] = { {1,0,0}, {0,1,0}, {0,0,1} };

int ordine_indici[4][3][2] = { {{1, 2}, {3, 4}, {5, 6}},
{{
7, 8}, {9, 10}, {11, 12}},
{{
13, 14}, {15, 16}, {17, 18}},
{{
19, 20}, {21, 22}, {23, 24}}
};

int numeri[] = {-11,12,32,14,1,0,0,43};
int matrix[][3] = { {1,2,3}, {4,5,6}, {7,8,9} };


//stringhe come array di caratteri:

char Parola[] = "Caratteri";

/*
La dimensione dell'array e' pari a quella della stringa "Caratteri",
piu' uno, dal momento che il compilatore aggiunge automanticamente il
carattere nullo ("\0") alla fine della stringa.

Una volta che e' stato inizializzato un array di caratteri, esso diviene
un array a tutti gli effetti, e l'accesso ai suoi elementi (i caratteri)
puo' avvenire solo facendo riferimento a ciascuno di essi (in pratica
non si puo' ri-assegnare un valore a una stringa come
nell'inizializzazione...
Dopo l'istruzione di sopra, quindi, istruzioni come le seguenti:

Parola[] = "Nuova"; // errore!
Parola = "Nuova"; // errore!

non sono consentite!

*/

Parola[4] = 'w'; // assegna 'w' al quinto carattere (non al quarto!)
//(il primo e' il carattere 0, come in tutti gli array!)


//Anche per gli array di caratteri e' possibile l'inizializzazione
//"per elencazione"
char Lettere[] = { 'L', 'e', 't', 't', 'e', 'r', 'e'};
char Caratteri[6] = {'P','a','r','o','l','a' };

/*
In questi casi pero' non si ottiene una stringa terminata da '\0',
ma semplici array di caratteri il cui numero di elementi e'
esattamente quello specificato.
*/

return 0;

}


Nessun commento: