C/Vettori e puntatori/Vettori: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica Etichetta: Editor wikitesto 2017 |
||
Riga 21:
Per esempio il codice
<
int mioarray[10];
</syntaxhighlight>
definisce un array chiamato ''mioarray'' e composto da 10 elementi di tipo intero (''int'').
Per costruire un analogo array allocato dinamicamente nella memoria [[w:heap|heap]] in C si deve operare così:
<
int *mioarray = (int *) malloc(sizeof(int) * dim);
</syntaxhighlight>
dove ''dim'' può essere conosciuto anche a [[w:runtime|runtime]].
Riga 38:
Per esempio il codice
<
mioarray[4] = 1;
</syntaxhighlight>
modifica il 5º elemento dell'array ''mioarray'' inserendovi il valore 1.
Si può anche {{IndexItem|vettori, inizializzazione}}inizializzare alla dichiarazione:
<
int arr[3]={1,2,3};
</syntaxhighlight>
che produrrebbe un vettore come il seguente:
Riga 65:
Per creare vettori multidimensionali si scrive questo:
<
int arr[3][3];
</syntaxhighlight>
Quest'istruzione produrrebbe un vettore come questo:
Riga 138:
=== Vettori dinamici ===
L'ultimo standard ISO ('''C99''') dà la possibilità di dichiarare vettori di lunghezza variabile ossia la dimensione del vettore è una variabile. Ecco un esempio:
<
// C99, infatti questo commento è permesso in C99.
Riga 151:
// return 0 implicito, caratteristica C99.
}
</syntaxhighlight>
==={{IndexItem|array, assegnamento}}Assegnamento===
È possibile assegnare un valore ad un elemento di un vettore. Si specifica l'indice tra parentesi quadre:
<
/* C89. Compatibile con vecchi compilatori. */
int main (void)
Riga 167:
return 0;
}
</syntaxhighlight>
=={{IndexItem|array, accesso}}Accesso==
Riga 173:
Si accede ad un elemento di un vettore specificando il suo indice tra parentesi quadre:
<
/* C89. */
#include <stdio.h>
Riga 191:
return 0;
}
</syntaxhighlight>
Il risultato dell'esecuzione del programma è:
arr[0] = 7 arr[1] = 8 arr[2] = 9
Riga 203:
Osservare il codice seguente:
<
int a[10];
int *p;
Riga 220:
*(p + 4) = 1;
/* tutte assegnano 1 al quinto elemento dell'array */
</syntaxhighlight>
Non è però valido scrivere:
<
a = p;
</syntaxhighlight>
in quanto ''a'' rappresenta l'indirizzo dell'array ed è una costante.
|