Programming in C: Unit II (a): Arrays

Declaration of Array in C

with Example C Programs

We have already seen that every variable must be declared before it is used. The same concept is true in case of array variables also. An array must be declared before being used

DECLARATION OF ARRAYS

We have already seen that every variable must be declared before it is used. The same concept is true in case of array variables also. An array must be declared before being used. Declaring an array means specifying three things:

• Data type-what kind of values it can store, for example bsint, char, float, double

• Name-to identify the array

• Size-the maximum number of values that the array can hold

Arrays are declared using the following syntax:

type name [size];

Programming Tip: To declare and define an array, you must specify its name, type, and size.

Here the type can be either int, float, double, char or any other valid data type. The number within brackets indicates the size of the array, i.e., the maximum number of elements that can be stored in the array. The size of the array is a constant and must have a value at compilation time. For example, if we write,

int marks [10];

The above statement declares marks to be an array containing 10 elements. In C, the array index (also known as subscript) starts from zero. This means that the array marks will contain 10 elements in all. The first element will be stored in marks [0], the second element in marks [1], and so on. Therefore, the last element, i.e., the 10th element will be stored in marks [9]. Note that 0, 1, 2, 3 written within square brackets are subscripts/index. In memory, the array will be stored as shown in Figure 5.2.

Points to Remember

Note that C does not allow declaring an array whose number of elements is not known at the compile time. Therefore, the following array declarations are illegal in C.

int arr[];

int n, arr [n];

• Generally it is a good programming practice to define the size of an array as a symbolic constant as shown in the following code.

#include <stdio.h>

#define N 100

main()

{

int arr [N];

………….

}

The size of the array can be specified using an expression. However, the components of the expression must be available for evaluation of the expression when the program is compiled. Therefore, the following array declarations are valid in C language.

#include <stdio.h>

#define N 100

main()

{

int i=10;

int arr [N+10], my_arr [i-5*10];

……………

}

Note

Carray indices start from 0. So for an array with N elements, the index of the last element is N − 1.

• C never checks the validity of the array index- neither at compile time nor at run time. So even if you declare an array as

int arr [N];

The C compiler will not raise any error but the result of running such code is totally unpredictable. Even if you declare an array of 10 elements and later on by mistake try to access the 11th element, no error will be generated. But the results will be unpredictable as the memory occupied by the (so-called) 11th element may be storing data of another object.

Programming in C: Unit II (a): Arrays : Tag: : with Example C Programs - Declaration of Array in C