View All
View All
View All
View All
View All
View All
View All
View All
View All
View All
View All
View All

What is Array in C? With Examples

By Pavan Vadapalli

Updated on Dec 20, 2023 | 9 min read | 6.4k views

Share:

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.

Source

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.

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.

Coverage of AWS, Microsoft Azure and GCP services

Certification8 Months

Job-Linked Program

Bootcamp36 Weeks

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;
}

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.

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.

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!

Frequently Asked Questions (FAQs)

1. What is an array in C?

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

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

Pavan Vadapalli

900 articles published

Get Free Consultation

+91

By submitting, I accept the T&C and
Privacy Policy

India’s #1 Tech University

Executive PG Certification in AI-Powered Full Stack Development

77%

seats filled

View Program

Top Resources

Recommended Programs

upGrad

AWS | upGrad KnowledgeHut

AWS Certified Solutions Architect - Associate Training (SAA-C03)

69 Cloud Lab Simulations

Certification

32-Hr Training by Dustin Brimberry

upGrad KnowledgeHut

upGrad KnowledgeHut

Angular Training

Hone Skills with Live Projects

Certification

13+ Hrs Instructor-Led Sessions

upGrad

upGrad KnowledgeHut

AI-Driven Full-Stack Development

Job-Linked Program

Bootcamp

36 Weeks