Blog_Banner_Asset
    Homebreadcumb forward arrow iconBlogbreadcumb forward arrow iconSoftware Developmentbreadcumb forward arrow iconWhat is Array in C? With Examples

What is Array in C? With Examples

Last updated:
31st Mar, 2023
Views
Read Time
9 Mins
share image icon
In this article
Chevron in toc
View All
What is Array in C? With Examples

An array is a data structure in C programming that contains a group of items of the same data type in a contiguous memory block. Each element in the array is accessible through its index, which is a numeric integer representing the element’s location within the array.

Depending on the programming language and the program’s needs, an array in C programming can be built with either a fixed or dynamic size. The array size defines the maximum number of items that can be stored in the array.

Arrays are commonly used in C programming to store and manipulate data effectively. They are capable of representing vectors, matrices, tables, and several other data structures. 

According to a survey conducted by StackOverflow in 2022, more than 5000 developers who have worked with C still want to keep working with the same language.

Ads of upGrad blog

Array in CSource

Properties and Characteristics of An Array

An array in C++ and C programming has the following properties:

Arrays can hold values of the same data type

Elements of an array can only be of the same data type. For instance, an array with an integer data type can only hold integer values, whilst an array with a character data type can only hold characters.

The size of an array cannot be modified

After an array has been defined, the size of the array cannot be changed at any point during the runtime. So you need to declare the array size before using it for any operations.

An array is index based

An array allows each element to be recognised by its unique index number, which ranges from 0 all the way up to its ‘size – 1’. You can locate specific items inside the array with the element’s index.

For example:
int arr[5] = {1, 2, 3, 4, 5};

printf(%d, arr[1]);

Will produce an output: 2

Contiguous memory allocation

The elements in an array are stored in contiguous memory locations. Due to this property, the items of an array can be accessed and processed more quickly. 

The name of the array is a pointer

The name of an array is, in fact, a reference to the first element contained within the array. This indicates that you can use a pointer to send an array to a function.

Multi-dimensional arrays

C programming allows the creation of arrays with several dimensions called multi-dimensional arrays. For instance, a two-dimensional array is a collection of arrays in which each member is itself an array.

Check out our free technology courses to get an edge over the competition.

Instantiation

The term “instantiation” refers to the process of constructing an array in memory, allocating space for it, and giving it a variable name. Instance involves setting the array’s size and data type.

To begin using an array in your code, you must first instantiate it. After an array has been created, you can then start initialising it, i.e. storing information in it.

Instantiation and Initialisation of a 1-D Array

Let’s say you want to instantiate an array in C programming and initialise it with 5 elements. Below is the syntax to do the same:

int arr[5];

arr[5] = {1, 2, 3, 4, 5};

You can also choose to instantiate and initialise an array in the same line:

int arr[5] = {1, 2, 3, 4, 5};

‘int’ here is the data type ‘Integer’, the ‘[5]’ is the size of the array and the content within the curly braces are the elements of the array 

Check Out upGrad’s Software Development Courses to upskill yourself.

Instantiation and Initialisation of a 2-D Array

A two-dimensional array, or 2-D array, holds information in a matrix of rows and columns. Declaring the number of rows and columns together with the data type is a prerequisite to creating and initialising a two-dimensional array. So, let’s say that we want a 2-D array of the ‘Integer’ data type of 3 rows and 4 columns we type the following syntax in C programming:

int my_array[3][4];

After we have instantiated the array, we want to store the elements 1-12 in a grid:

my_array[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8},{9, 10, 11, 12}};

The output of the array looks like:

1  2  3  4

5  6  7  8

9 10 11 12

How to loop over an array to enter and print elements?

Now that we have learnt how to instantiate and initialise an array fundamentally let’s dive a little deeper into entering elements and printing those elements. 

Let’s say you want to create a program that asks a user to enter 5 elements into the array and print the elements. Here’s how you would write the code:

#include <stdio.h>

int main() {

    int arr[5];

    printf(“Enter 5 elements into the array:\n”);

    // Loop over the array to enter the elements

    for (int i = 0; i < 5; i++) {

        printf(“Enter element %d: “, i + 1);

        scanf(“%d”, &arr[i]);

    }

    printf(“The elements you entered are:\n”);

    // Loop over the array to print the elements

    for (int i = 0; i < 5; i++) {

        printf(“%d “, arr[i]);

    }

    printf(“\n”);

    return 0;

}

First, we create an array with the size of 5 elements, called arr. Then, using a for loop, we ask the user for the array’s first five elements. The scanf()method is then used within the loop to read the user’s inputted value and assign it to the array’s current index.

In order to print the user’s input using the printf() function, we use another for loop after all the items have been inputted. Lastly, we prepare output by printing a newline character and return 0 to signify the successful completion of the program.

Explore our Popular Software Engineering Courses

 

General Operations on An Array

Linear Search in an array

A linear search, also known as a sequential search, involves going through a list or array’s elements one by one, starting at the beginning and continuing until the sought-after item is located or the end of the list is reached.

In simpler words, a linear search algorithm works by iteratively comparing each element of the array or list to the target element, beginning with the first member and continuing until the target element is located or the end of the array or list is reached. The algorithm returns the index of the element in the array or list at which the sought-after item was first located, or else it sends a signal indicating that the item was not found.

Linear Search in an array

Source

Below is a simple program using a linear search on an array to find out the target element:

 

#include <stdio.h>

int main() {

    int arr[] = {5, 7, 12, 8, 3};

    int n = sizeof(arr)/ sizeof(arr[0]); // using the sizeof function to find out the length of the array

    int target = 8; // this is the element we want to find

    int flag = 0; // flag to indicate whether target element is found, originally set to false

    

    for (int i = 0; i < n; i++) { // using a for loop to iterate through the array

        if (arr[i] == target) {

            flag = 1;

            printf(“Element found at index %d\n”, i);

            break; // exiting the loop once target element is found

        }

    }

    if (!flag) {

        printf(“Element not found\n”);

    } 

    return 0;

}

Learn C Programming Language Tutorials

 

Bubble Sorting an array

Bubble sort is a straightforward technique for sorting an array in ascending or descending order. It constantly compares nearby array items and exchanges them if their order is incorrect. The procedure is continued until the array is in the desired order.

Bubble Sorting an array

Source

The syntax for implementing a bubble sort in C programming is given below:


#include <stdio.h>

int main() {

    int arr[] = {64, 34, 25, 12, 22, 11, 90};

    int n = sizeof(arr)/sizeof(arr[0]); // returns the length of the array 

    int i, j, temp;

    for (i = 0; i < n-1; i++) { // outer loop

        for (j = 0; j < n-i-1; j++) { // inner loop

            if (arr[j] > arr[j+1]) { // checking if element at current index is greater than the element at the next index

// performing standard swapping using a temporary variable

                temp = arr[j];

                arr[j] = arr[j+1];

                arr[j+1] = temp;

            }

        }

    }

    printf(“Sorted array: “);

    for (i = 0; i < n; i++) {

        printf(“%d “, arr[i]);

    }

    printf(“\n”);

    return 0;

}

Conclusion

Arrays are useful for implementing a wide variety of data structures, including stacks, queues, and hash tables, and allow for quick access to specific items by index. Arrays are a cornerstone of many data structures, as mentioned above; therefore, they naturally come up in interviews for software engineering roles.

Candidates are typically asked to develop code to perform tasks like sorting, searching, and manipulating data using arrays. Interviewers often ask candidates to demonstrate their familiarity with fundamental programming principles by answering questions on arrays.

upGrad’s MS in Computer Science programme with Liverpool John Moores University

Do you feel prepared to advance to the next level in computer science? If so, upGrad’s MS programme in Computer Science from LJMU could be precisely what you need. This comprehensive programme offers a unique combination of expert instructors, hands-on experience, and a cutting-edge curriculum designed to prepare you for success in today’s fast-paced tech industry.

Ads of upGrad blog

With this program, you’ll gain a deep understanding of the latest computer science techniques, including a specialisation in full-stack web development. You will also acquire the skills necessary to efficiently manage software projects and succeed in the often confusing field of software engineering.

In addition to the classroom, you’ll have hands-on experience developing complex software systems and applications through a variety of exciting capstone projects. With LJMU’s reputation for success in the IT sector, you’ll have the confidence and skills to thrive in whatever software engineering career you choose.

So why wait? Enrol in upGrad’s Master’s programme in Computer Science from LJMU now!

Profile

Pavan Vadapalli

Blog Author
Director of Engineering @ upGrad. Motivated to leverage technology to solve problems. Seasoned leader for startups and fast moving orgs. Working on solving problems of scale and long term technology strategy.

Frequently Asked Questions (FAQs)

1What is an array in C?

An array is a type of data structure that stores a group of elements with the same data type in memory locations that are contiguous.

2What are the limitations of an array in C++ and C programming?

The maximum number of items an array may hold is set at the moment it is created since arrays are of fixed size. This makes dynamically adding or removing items hard; if the array is bigger than required, it might waste RAM. A further limitation of arrays is that they cannot contain elements of varying data types.

3What is an array index out-of-bounds error?

An array index out-of-bounds error occurs when an attempt is made to access an element of an array that does not exist. This can happen if the index value is negative or greater than or equal to the size of the array.