What is Array in C? With Examples
Updated on Dec 20, 2023 | 9 min read | 6.4k views
Share:
For working professionals
For fresh graduates
More
Updated on Dec 20, 2023 | 9 min read | 6.4k views
Share:
Table of Contents
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.
An array in C++ and C programming has the following properties:
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.
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 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
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 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.
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.
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.
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.
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
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.
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.
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 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.
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;
}
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.
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!
Get Free Consultation
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
Top Resources