Mikroelektronika MIKROE-738 Datenbogen

Seite von 682
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 identified 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-defined 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:
#define MAX = 50
int   vector_one[10];          /* declares an array of 10 integers */
float  vector_two[MAX];         /* declares an array of 50 floats   */
float  vector_three[MAX - 20];  /* declares an array of 30 floats   */
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 specified 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.