C Language Impostazione dei valori negli array


Esempio

L'accesso ai valori dell'array avviene generalmente tramite parentesi quadre:

int val;
int array[10];

/* Setting the value of the fifth element to 5: */
array[4] = 5;

/* The above is equal to: */
*(array + 4) = 5;

/* Reading the value of the fifth element: */
val = array[4];

Come effetto collaterale degli operandi verso l'operatore + che è scambiabile (-> legge commutativa) il seguente è equivalente:

*(array + 4) = 5;
*(4 + array) = 5;

così come le prossime affermazioni sono equivalenti:

array[4] = 5;
4[array] = 5; /* Weird but valid C ... */

e anche loro due:

val = array[4];
val = 4[array]; /* Weird but valid C ... */

C non esegue alcuna verifica dei limiti, l'accesso ai contenuti al di fuori dell'array dichiarato non è definito ( Accesso alla memoria oltre il blocco assegnato ):

int val;
int array[10];

array[4] = 5;    /* ok */
val = array[4];  /* ok */
array[19] = 20;  /* undefined behavior */
val = array[15]; /* undefined behavior */