Previous | Home | Next |
Mainly arrays are categorized in
- One dimensional array
- Multidimensional array
# One dimensional Array representation in memory
One dimensional arrays are the simple arrays that we have so far discussed. In previous examples we have shown how to initialize and declare one dimensional array, now we will discuss how it is represented in the memory. As we know now 1-d array are linear array in which elements are stored in the successive memory locations. The element at the very first position in the array is called its base address.
int arr[5];
Element | 34 | 78 | 98 | 45 | 56 |
Index | arr[0] = 100 | arr[1] = ? | arr[2] = ? | arr[3] = ? | arr[4] = ? |
Above we have defined an array of five elements of integer type whose first index element is at base address 100. i.e, the element arr[0] is stored at base address 100. Now for calculating the starting address of the next element i.e. of a[1], we can use the following formula :
Base Address (B)+ No. of bytes occupied by element (C) * index of the element (i)
/* Here C is constant integer and vary according to the data type of the array, for e.g. for integer the value of C will be 4 bytes, since an integer occupies 4 bytes of memory. */
Now, we can calculate the starting address of second element of the array as :
arr[1] = 100 + 4 * 1 = 104; /*Thus starting address of second element of array is 104 */
Similarly other addresses can be calculated in the same manner as :
arr[2] = 100 + 4 * 2 = 108 arr[3] = 100 + 4 * 3 = 112 arr[4] = 100 + 4 * 4 = 116
#include<stdio.h> #include<conio.h> void main() { int a[] = {20, 30, 50, 70, 100}; int n, sum=0; for ( n=0 ; n<5 ; n++ ) { sum += a[n]; } printf ("%d", sum); return 0; }
Previous | Home | Next |