Arrays in C Programming: Operations on Arrays

Arrays in C Programming: Operations on Arrays

17 May 2024
Intermediate
5.22K Views
17 min read
Learn via Video Course & by Doing Hands-on Labs

C Programming For Beginners Free Course

Arrays in C Programming: An Overview

Arrays in C are one of the most versatile and powerful data structures in C. In this C tutorial, we’ll explore what makes arrays so great: their structure, how they store information, and how they are used in various algorithms. To solidify your skills, you can also look into the C Certification Course.

What are Arrays in C Programming?

An Array in C programming language is a powerful data structure that allows users to store and manipulate a collection of elements, all of the same data type in a single variable. Simply, it is a collection of elements of the same data type.

Arrays are the derived data type in C that can store values of both - fundamental data types like int, and char; and derived data types like pointers, and structure. The values get stored at contagious memory locations that can be accessed with their index number.

Syntax


dataType arrayName[arraySize];
Example

int a[5];

Here, an integer type array a is declared with the size 5. It can store 5 integer values.

Read More - Top 50 Mostly Asked C Interview Questions and Answers

Properties of an Array in C

  • Declaration: Arrays in C are declared by specifying the data type of the elements and the number of elements in the array.
  • Indexing: Elements in an array are accessed using an index. The index of the first element in an array is always 0.
  • Memory allocation: Arrays in C are allocated contiguous memory locations at the time of declaration. The amount of memory allocated for an array is equal to the product of the number of elements and the size of each element.
  • Initialization: Arrays in C can be initialized at the time of declaration or later.
  • Size: The size of an array is the number of elements in the array. The size of an array can be calculated using the sizeof() operator.
  • Manipulation: Arrays in C can be manipulated using loops, functions, and other programming constructs.

Types of Arrays in C

Types of Arrays in C

There are two types of array in C, which are:

  1. Single-dimensional array: It is a collection of elements of the same data type that are stored in a contiguous block of memory.
  2. Multi-dimensional array: It is an array that contains one or more arrays as its elements. We will see this in the next section multidimensional arrays in C.

In this tutorial we will cover all the aspects of a Single dimensional array

How to initialize an array in C?

There are various ways to do this:

  • Initialize at the time of declaration using “{}.

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

  • Initialize an array without specifying its size at declaration time.

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

    Though we haven't specified the size, the compiler understands the size as 5 due to the initialization of 5 elements.

  • Initialization by using the index of an element
    
    int marks[5];
    marks[0]=80; //the index of an array starts with 0.
    marks[1]=60; 
    marks[2]=70; 
    marks[3]=85; 
    marks[4]=75;
    

Accessing Elements of an Array in C

To access the array elements, use the index number of the required element. The array index starts with 0. The index of the last element is n-1.

Example in C Compiler


#include <stdio.h>
int main() {
 int a[] = {25, 50, 75, 100};
 printf("%d\n", a[0]);
 printf("%d\n", a[1]);
 printf("%d\n", a[2]);
 printf("%d\n", a[3]);
 printf("%d\n", a[4]);
 return 0;
}

Output

25
50
75
100
45

Remember that when you access an unavailable element in an array, the program may result in an unexpected output (undefined behavior). Sometimes you might get an error and some other times your program may run correctly.

Changing the Elements of an array in C

To change the value of a specific element, refer to the index number:

Example


#include <stdio.h>
int main()
{
 int a[] = {25, 50, 75, 100, 45};
 a[3] = 60;
 printf("%d\n", a[3]);
 return 0;
}

Output

60

Traversing an Array in C

To traverse an array, for loop is used.

Example


#include <stdio.h>
int main(){
int i=0;
int marks[5];//declaration of array
marks[0]=90;//initialization of array
marks[1]=80;
marks[2]=70;
marks[3]=95;
marks[4]=85;

//traversal of array
for(i=0;i<5;i++){
printf("%d \n",marks[i]);
}//end of for loop
return 0;
}

Output

90
80
70
95
85

Input and Output Array Elements in C

We can use the scanf() function to take inputs of an array from the user.

Example


// Program to take values of the array from the user and print the array

#include <stdio.h>
int main()
{
 int a[5];
 printf("Enter the values of an integer array:\n ");

 // taking input and storing it in an array
 for(int i = 0; i < 5; ++i) {
 scanf("%d", &a[i]);
 }
 
 printf("Displaying integers: ");
 // printing elements of an array
 for(int i = 0; i < 5; ++i) {
 printf("%d\n", a[i]);
 }
 return 0;
}

The above code in the C Editor uses the for loop to take input values for an array a. After storing the elements in an array, it again uses the for loop to print all of them.

Output

Enter the values of an integer array:
1
2
3
4
5
Displaying integers:
1
2
3
4
5

Advantages of an Array in C

  • Efficient memory usage: Arrays in C use contiguous memory locations to store the elements, thus making it efficient to allocate and access data.
  • Easy access to elements: Elements in an array can be accessed using their index, making it easy to retrieve specific data from the array.
  • Better performance: Accessing elements in an array using an index is faster than using other data structures like linked lists or trees. This is because the index provides direct access to the memory location where the element is stored.
  • Flexibility: Arrays in C can be used to store different types of data, including integers, characters, and strings.
  • Easy to implement algorithms: Many algorithms in computer science use arrays, making it easy to implement these algorithms in C.
  • Compatible with other data structures: Arrays can be used in conjunction with other data structures in C, such as stacks and queues, to implement complex data structures and algorithms.
  • Easy to pass to functions: Arrays can be easily passed as arguments to functions in C, making it easy to manipulate large amounts of data efficiently.

Disadvantages of an Array in C

  • Fixed-size: Arrays in C have a fixed size determined at the time of declaration. There is no dynamic increase in the size of an array.
  • Memory allocation: Arrays in C are allocated in contiguous memory blocks. If the array is very large, there may not be enough contiguous memory available for allocation.
  • No bounds checking: C does not perform any bounds checking on arrays, so it is possible to access memory outside of the bounds of the array. This can lead to segmentation faults or other memory-related errors.
  • Limited flexibility: Arrays in C have limited flexibility due to fixed size and dimensions. This makes it difficult to implement certain algorithms and data structures that require dynamic resizing and manipulation.
  • Inefficient for insertion and deletion: Inserting or deleting elements from an array in C can be inefficient, as it requires shifting all the elements after the insertion or deletion point to make room or fill in the gap. This can be time-consuming, especially for large arrays.
  • Not suitable for non-numeric data: While arrays in C are well-suited for storing numeric data, they aren’t ideal for storing non-numeric data, such as strings or complex data structures. This is because C does not provide built-in support for these types of data structures.
Summary

After reading this article, you might have understood Arrays in C. They promote time efficiency and code readability. You'll be surprised by the amount you can achieve with just a few lines of code in C! If you're interested in more tips and guidance on Arrays in C, consider exploring our site, where you can find comprehensive learning materials and tutorials. Additionally, if you want to solidify your knowledge and demonstrate your expertise, you may also consider a C Certification, which can validate your skills and enhance your credibility in the field.

Share Article

Live Classes Schedule

Our learn-by-building-project method enables you to build practical/coding experience that sticks. 95% of our learners say they have confidence and remember more when they learn by building real world projects.
Angular Certification Course May 25 SAT, SUN
Filling Fast
06:00PM to 08:00PM (IST)
Get Details
Full Stack .Net Certification Training May 26 SAT, SUN
Filling Fast
07:00AM to 09:00AM (IST)
Get Details
ASP.NET Core Certification Training May 26 SAT, SUN
Filling Fast
08:30PM to 10:30PM (IST)
Get Details
Advanced Full-Stack .NET Developer Certification Training May 26 SAT, SUN
Filling Fast
08:30PM to 10:30PM (IST)
Get Details
Data Structures and Algorithms Training Jun 04 TUE, FRI
Filling Fast
08:30PM to 10:00PM (IST)
Get Details
Azure DevOps Certification Training Course Jun 09 SUN
Filling Fast
04:30PM to 06:30PM (IST)
Get Details
ASP.NET Core Certification Training Jun 21 MON, WED, FRI
Filling Fast
07:00AM to 08:30AM (IST)
Get Details
Azure Developer Certification Training Jun 23 SAT, SUN
Filling Fast
10:00AM to 12:00PM (IST)
Get Details

Can't find convenient schedule? Let us know

About Author
Sakshi Dhameja (Author and Mentor)

She is passionate about different technologies like JavaScript, React, HTML, CSS, Node.js etc. and likes to share knowledge with the developer community. She holds strong learning skills in keeping herself updated with the changing technologies in her area as well as other technologies like Core Java, Python and Cloud.

Self-paced Membership
  • 22+ Video Courses
  • 800+ Hands-On Labs
  • 400+ Quick Notes
  • 55+ Skill Tests
  • 45+ Interview Q&A Courses
  • 10+ Real-world Projects
  • Career Coaching Sessions
  • Email Support
Upto 60% OFF
Know More
Accept cookies & close this