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
<sourcesyntaxhighlight lang=c>
int mioarray[10];
</syntaxhighlight>
</source>
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ì:
 
<sourcesyntaxhighlight lang=c>
int *mioarray = (int *) malloc(sizeof(int) * dim);
</syntaxhighlight>
</source>
 
dove ''dim'' può essere conosciuto anche a [[w:runtime|runtime]].
Riga 38:
 
Per esempio il codice
<sourcesyntaxhighlight lang=c>
mioarray[4] = 1;
</syntaxhighlight>
</source>
modifica il 5º elemento dell'array ''mioarray'' inserendovi il valore 1.
 
Si può anche {{IndexItem|vettori, inizializzazione}}inizializzare alla dichiarazione:
 
<sourcesyntaxhighlight lang="c">
int arr[3]={1,2,3};
</syntaxhighlight>
</source>
 
che produrrebbe un vettore come il seguente:
Riga 65:
Per creare vettori multidimensionali si scrive questo:
 
<sourcesyntaxhighlight lang="c">
int arr[3][3];
</syntaxhighlight>
</source>
 
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:
<sourcesyntaxhighlight lang="c">
// C99, infatti questo commento è permesso in C99.
 
Riga 151:
// return 0 implicito, caratteristica C99.
}
</syntaxhighlight>
</source>
 
==={{IndexItem|array, assegnamento}}Assegnamento===
È possibile assegnare un valore ad un elemento di un vettore. Si specifica l'indice tra parentesi quadre:
 
<sourcesyntaxhighlight lang="c">
/* C89. Compatibile con vecchi compilatori. */
int main (void)
Riga 167:
return 0;
}
</syntaxhighlight>
</source>
 
=={{IndexItem|array, accesso}}Accesso==
Riga 173:
Si accede ad un elemento di un vettore specificando il suo indice tra parentesi quadre:
 
<sourcesyntaxhighlight lang="c">
/* C89. */
#include <stdio.h>
Riga 191:
return 0;
}
</syntaxhighlight>
</source>
Il risultato dell'esecuzione del programma è:
arr[0] = 7 arr[1] = 8 arr[2] = 9
Riga 203:
 
Osservare il codice seguente:
<sourcesyntaxhighlight lang=c>
int a[10];
int *p;
Riga 220:
*(p + 4) = 1;
/* tutte assegnano 1 al quinto elemento dell'array */
</syntaxhighlight>
</source>
 
Non è però valido scrivere:
<sourcesyntaxhighlight lang=c>
a = p;
</syntaxhighlight>
</source>
in quanto ''a'' rappresenta l'indirizzo dell'array ed è una costante.