Originally Posted on SeedBx
Welcome to the ninth part of the Gentle Introduction to C series. As said before this series aims to provide you a
brief introduction to C language.
In this post, we will learn about a
very basic data structure, namely single-dimensional array, often just called
array.
Interesting Fact :
Array is at the base of computer memory. Computer memory is just a very big
array.
Array
Array is a collection of similar
objects or items which are stored in a contiguous fashion.
Let us understand this definition by
breaking it into two parts.
Collection of Similar Items
Array can be used to store almost
any data type. However given the data type, we cannot store data items of any
other kind in it.
Example :
The above array is valid and is an
example of an int type array.
However, the above array is invalid
because the array contains more than one type, namely char, float and int.
Stored in Contiguous Manner
Array elements, in the computer
memory, are stored in contiguous memory locations. Hence by knowing the memory
address of any of the elements of an array, we can reach to any other array
element by just traversing the memory addresses in a linear fashion.
Note : Array elements in C (and most of the programming
languages) can be accessed using their index. Indexes are like placeholder
which can be used to get information or value at any position in the array. In
C, 0-based indexing is used i.e. the first element is at the 0th
index position.
Example :
Declaring an Array
An array in C can be declared in three different ways.
1. Declaration by Specifying Size
datatype arr_name[size];
2. Declaration by Initialising Array
datatype arr_name[]={items, in, a, comma, seperated, list};
3. Declaration by Specifying Size and Initialising Array
datatype
arr_name[size]={size, items, in, a, comma, seperated, list};
For example,
int a[10];
char name[]={'a', 'a',
'y', 'u', 's', 'h'};
char foo[6]={'r', 'a',
'n', 'd', 'o','m'};
In the above code snippet, three
arrays have been declared one, a, of int type of size 10 and the others,
name and foo, of char type and size 6.
Note : An array declaration like,
char bar[1]={'m', 'o',
'h', 'a', 'n'};
will not give a compiler error
and rather will just give a warning. However this declaration is not
encouraged.
Accessing Array Elements
As said above, array elements can be
accessed using indexes. In C (and many similar programming languages), indexes
start at 0 and are always positive.
To access the nth
element in an array arr_name we will write the array name followed by
the index in square brackets i.e.
arr_name[n-1]
For example, in the above given
array name, if we want to access the first char, we can do so by
name[0];
Note :
arr[-1];
arr[100];
In C, there is no index out of
bound checking i.e. if for a given array, arr of size 10, the above
code snippet will not give any error, however the results returned will be
unexpected and totally garbage.
Array is a data structure that is
not only limited to C and rather is fundamental to almost all programming
languages. There are some flaws in array, particularly it's static nature,
which are overcame in many other array-like data structures. However array is
often the starting point for many applications.
There is still much to be said about
arrays, in particular of it's other variant i.e. multi-dimensional array but I
will leave that for another post.
Thanks for reading.
No comments:
Post a Comment