Arrays in C
An array is a derived data type in C. It is the collection of homogeneous data types in contiguous memory locations. Imagine having to store the marks of 60 students in a class. To store that many values, initializing 60 different int variables is one choice but is risky, time taking and complicated to access each variable. That is when; we store all the values under a single name- An array.
It can store primitive data types like int, char, etc., as well as derived data types like pointers, structures etc. Each element inside the array can be accessed by its index. So, by using an array, we can store and access the data easily.
Syntax:
Declaration:
data_type name[size];
Here, data_type refers to the data type of all the items we want to store in the array, name is the identifier we give to the array.
We can also initialize the array at the time of declaration. Like:
data_type name[size] = {value1, value2,…};
data_type name[] = {value1, value2,…}; is also valid. [declaring the size is not mandatory]
Example
int marks[60]
Inside an Array:
To access and initialize the data items in the array, we use index of an array which starts from 0 to size-1.
Ex: int arr[7]
arr[0] | arr[1] | arr[2] | arr[3] | arr[4] | arr[5] | arr[6] |
Example:
#include<stdio.h>
void main()
{
int marks[5], I;
marks[0] = 20;
marks[1] = 30;
marks[2] = 40;
marks[3] = 45;
marks[4] = 50;
printf(“%d”,arr[2]);
}
Output:
40
Mechanism:
First, we declared an array with size 5. Then, we initialized the values using index. Now, we printed the value stored in 2nd index of the array which is 40.
Printing all the values in an Array:
To print all the values of an array, we cannot just print the array, because, it consists of many values. So, for that we use a for loop to traverse to every single value of the element and then print it.
Example:
#include<stdio.h>
void main()
{
int arr[5] = {20,34,56,23,12},i;
for(i=0;i<5;i++)
{
printf(“%d\n”,arr[i]);
}
}
Output:
20
34
56
23
12
Advantages of using an Array:
- Contains multiple variables under a single name.
- Easy to sort elements
- Easy to perform matrix operations.
- Used for CPU Scheduling.
- We can access elements easily
- Less time consuming and decreases the length of the code.
Disadvantages of using an Array:
- Fixed size: The size we give at the time of declaration of the array is fixed and can’t be modified dynamically.
Types of Arrays:

1. One-dimensional array: It is also called as a vector. These are simple arrays with subscript-1. [A Subscript is either the notation for number of rows or number of columns or both].
Syntax:
data_type name[size];
Example:
int arr[5];
2. Multi-dimensional Array:
Simply, It can be defined is “ARRAY OF ARRAYS”. Data stored in tabular forms. Ex: Two-dimensional arrays-a[2][2]; three dimensional arraya-a[2][2][2]
Syntax:
Data_type array_name[size1][size2]….[sizeN]
Two-dimensional Array: It is the representation of elements in rows and columns [subscript-2]. It is organized like a matrix.
Syntax:
Data_type name[rows][columns];
Example:
int arr[2][2];
int arr[2][2] = {{1,2},{3,4}};
Inside the array:
arr[0][0] | arr[0][1] |
arr[1][0] | arr[1][1] |
arr[0][0]-> Element in 0th row index and 0th column index
arr[0][1]-> Element in 0th row index and 1st column index
arr[1][1]-> Element in 1st row index and 1st column index
arr[1][0]-> Element in 1st row index and 0th column index
Example Program:
#include<stdio.h>
void main()
{
int i=0,j=0;
int arr[2][2] = {{1,2},{3,4}};
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
{
printf(“%d “,arr[i][j]);
}
printf(“\n”);
}
}
Output:
1 2
3 4
Mechanism: In the program, we initiated a two dimensional array and gave values to it. Now, to access the members of the array, we need to take two loops to access both rows and columns. The first loop is to iterate through the columns and the second one is to iterate the rows. The second loop is nested inside the first loop.
//To input the elements into the array
#include<stdio.h>
void main()
{
int m,n,arr[m][n],i,j;
printf(“Enter the number of rows: “);
scanf(“%d”,&m);
printf(“Enter the number of columns: “);
scanf(“%d”,&n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf(“arr[%d][%d]: “,i,j);
scanf(“%d”,&arr[i][j]);
}
}
printf(“The array looks like: \n”);
for(i=0;i<m;i++)
{
printf(“\n”);
for(j=0;j<n;j++)
{
printf(“%d\t”,arr[i][j]);
}
}
}
Output:
Enter the number of rows: 3
Enter the number of columns: 3
Enter arr[0][0]: 56
Enter arr[0][1]: 10
Enter arr[0][2]: 30
Enter arr[1][0]: 34
Enter arr[1][1]: 21
Enter arr[1][2]: 34
Enter arr[2][0]: 45
Enter arr[2][1]: 56
Enter arr[2][2]: 78
The array looks like:
56 10 30
34 21 34
45 56 78