# Arrays : Setting values in arrays

0 like 0 dislike

Setting values in arrays

0 like 0 dislike
by (3.4k points)

Accessing array values is generally done through square brackets:

int val;

int array;

/* Setting the value of the fifth element to 5: */

array = 5;

/* The above is equal to: */

*(array + 4) = 5;

/* Reading the value of the fifth element: */

val = array;

As a side eﬀect of the operands to the + operator being exchangeable (--> commutative law) the following is equivalent:

*(array + 4) = 5;

*(4 + array) = 5;

so as well the next statements are equivalent:

array = 5;

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

and those two as well:

val = array;

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

C doesn't perform any boundary checks, accessing contents outside of the declared array is undeﬁned (Accessing memory beyond allocated chunk ):

int val;

int array;

array = 5;    /* ok */

val = array;  /* ok */

array = 20;  /* undefined behavior */

val = array; /* undefined behavior */