User manual

Table Of Contents
mikroC PRO for PIC32
MikroElektronika
201
Arrays
Array is the simplest and most commonly used structured type. A variable of array type is actually an array of objects
of the same type. These objects represent elements of an array and are identied by their position in array. An array
consists of a contiguous region of storage exactly large enough to hold all of its elements.
Array Declaration
Array declaration is similar to variable declaration, with the brackets added after identifer:
type array_name[constant-expression]
This declares an array named as array_name and composed of elements of type. The type can be any scalar type
(except void), user-dened type, pointer, enumeration, or another array. Result of constant-expression within the
brackets determines a number of elements in array. If an expression is given in an array declarator, it must evaluate to
a positive constant integer. The value is a number of elements in an array.
Each of the elements of an array is indexed from 0 to the number of elements minus one. If a number of elements is n,
elements of array can be approached as variables array_name[0] .. array_name[n-1] of type.
Here are a few examples of array declaration:
#dene MAX = 50
int vector_one[10]; /* declares an array of 10 integers */
oat vector_two[MAX]; /* declares an array of 50 oats */
oat vector_three[MAX - 20]; /* declares an array of 30 oats */
Array Initialization
An array can be initialized in declaration by assigning it a comma-delimited sequence of values within braces. When
initializing an array in declaration, you can omit the number of elements – it will be automatically determined according
to the number of elements assigned. For example:
/* Declare an array which holds number of days in each month: */
int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
/* This declaration is identical to the previous one */
int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
If you specify both the length and starting values, the number of starting values must not exceed the specied length. The opposite
is possible, in this case the trailing “excess” elements will be assigned to some encountered runtime values from memory.
In case of array of char, you can use a shorter string literal notation. For example:
/* The two declarations are identical: */
const char msg1[] = {‘T’, ‘e’, ‘s’, ‘t’, ‘\0’};
const char msg2[] = “Test”;
For more information on string literals, refer to String Constants.