Array in C4 min read

An array is a group or the collection of data having the same data-type stored in a contiguous memory location. It is a simple data structure format where the primitive type of data such as int, char, double, float, etc are stored and accessed randomly through their index number.

It can also store the collection of derived data types, such as pointers, structure, etc. Elements are arranged inside the array with index numbers starting from zero as the first elements.

Types of Array in C:

  • One Dimensional Array
  • Two Dimensional Array
  • Multi-Dimensional Array

One Dimensional Array

An array with only one subscript is known as a one-dimensional array.
Example: int arr[10].

Syntax:

Declaration of on Array:

For declaration of an array in C, the user needs to specify the type of element and number of elements in an array. Below is the declaration of single-dimensional Array.

The data-type must be a valid C data type, a unique name must be specified to each array and the arraySize must be of an integer constant. Let see an example for integer array with 10 elements:

Initialization of an array:

Array can be initialize by using a single statement or one by one. The Initialization is done within the curly braces {}.

In the second one of the above example, the array size is not declared so that you can initialize as much value as you want.

Users can also directly assign the value to the particular element in an array by specifying the index number such as: below shows how to assign the value 23 to the 5th element of an array.

NOTE:
In the above example, number 4 means the 5th element as the array index starts from 0.

Accessing an Array:

As told above, that each array elements are associated with specific number that is the index numbers.

An array element can be accessed by using the specific index number. It can be achieved by placing the particular index number within the bracket []. Such as:

We can also assign the value particular index number to other variable but their data type must be the same such as:

In the above, the value of 5th element from an array arr[] is assigned to the numb variable.


Example: Demonstration for declaring, initializing, and accessing an array in C

Output:


Index Out of bound Checking: Accessing elements out of its bound.

Out of bound means, suppose you declare an array with 10 number of elements (index between 0 to 9) and you try to access the 11th element, which is not present in that array such as:

In the above program, the 11th element is not present but we are trying to print that element. In such cases, the program may run fine but you may get an unexpected output (undefined behavior) from a program.

There is no index out of bounds checking in C.


Empty Members in an array

When we declare an array of size n, that means we can store the n number of elements of in that array. But what happens if we were to store less than n number of elements.

Consider an example below:

As you can see, the size of an array is 10 but we initialized it with only 6 elements. However, a 10 contiguous memory location is already allocated to this array. What will happen to the remaining un-initialized arrays?

Now in such cases, random values are assigned by the compiler to the remaining places. And often these random values are 0.


Advantages of Array in C

  • Less line of codes that is a single array with multiple elements, specifying code optimization.
  • Elements of an array can be accessed randomly with the index number.
  • The elements in an array can be easily traversed.
  • Array’s data are easy to manipulate.
  • Sorting becomes easy in an array with fewer lines of codes.

Disadvantages of Array in C

  • The array is of fixed size once initialized. We cannot add new elements after initialization.
  • The number of elements you need to store in an array must be known in advance.
  • There may be a wastage of space if more memory is allocated than the required amount.

Learn in Detail:

1One-Dimensional Array
2Two-Dimensional Array
3Multi-Dimensional Array
4Passing Array to Function
5Pointers to Array

MORE

C Program to search an element in an array using Pointers

A separate function( search_function()) will be created where the array pointer will be declared and the searched element along with the size of an array …

C Program to find the sum of the digits of a number using recursion function

This C program calculates the sum of digits of a given number using recursion. Here’s a concise explanation: Function Definition: sumDigits(int n) This function calculates …

C program to find factorial of a number using Ternary operator with Recursion

Recursion refers to the function calling itself directly or in a cycle. Before we begin, you should have the knowledge of following in C Programming: …

C Program to Add Two Numbers Using Call by Reference

The program takes the two numbers from the user and passes the reference to the function where the sum is calculated. You may go through …

Find the output ab, cd, ef, g for the input a,b,c,d,e,f,g in Javascript and Python

In this tutorial, we will write a program to find a pairs of elements from an array such that for the input [a,b,c,d,e,f,g] we will …

String Pattern Programs in C

In this tutorial, we will write various C pattern programs for String. Before that, you may go through the following topics in C. for loop …