C (programming language)

C Program to Print Array Elements in Reverse Order

Unveiling the Order: Printing Array Elements in Reverse in C

Arrays, ordered collections of data, are fundamental building blocks in C programming. Accessing and manipulating their elements efficiently is crucial. This guide delves into a practical task: printing the elements of an array in reverse order, offering different approaches and explanations.

Grasping the Concept

Before diving into the code, let’s solidify our understanding of the problem. We have an array of n elements, and we want to print them in the opposite order, starting from the last element and ending with the first. Essentially, we’re traversing the array from right to left.

Method 1: Using a Loop with Index Decrement

A straightforward approach leverages a loop that iterates through the array indices in descending order. We start with the index value n-1 (representing the last element) and decrement it until it reaches 0 (first element). Inside the loop, we access the corresponding element using the index and print it.


#include <stdio.h>

int main() {
  int arr[] = {1, 2, 3, 4, 5};
  int n = sizeof(arr) / sizeof(arr[0]); // Get array size

  for (int i = n - 1; i >= 0; i--) {
    printf("%d ", arr[i]); // Print element at index i

  return 0;

This code defines an array, calculates its size, and then uses a for loop with a decrementing counter (i). Within the loop, it accesses the element at index i using arr[i] and prints it. This process continues until the loop reaches the first element (index 0), effectively printing the array in reverse order.

Method 2: Utilizing Pointer Arithmetic

C allows pointer arithmetic, manipulating memory addresses based on operations like addition and subtraction. We can leverage this to navigate the array in reverse order without explicitly tracking indices.


#include <stdio.h>

int main() {
  int arr[] = {1, 2, 3, 4, 5};
  int* ptr = arr + (sizeof(arr) / sizeof(arr[0]) - 1); // Point to last element

  while (ptr >= arr) {
    printf("%d ", *ptr); // Print element pointed by ptr
    ptr--; // Move pointer one element backward

  return 0;

This code defines a pointer (ptr) that initially points to the last element of the array (calculated using pointer arithmetic). It then uses a while loop that iterates as long as the pointer stays within the array bounds (ptr >= arr). Inside the loop, it prints the element pointed to by ptr and then decrements the pointer by one (ptr--), effectively moving it to the previous element. This process continues until the pointer reaches the first element, achieving the desired reverse printing.

Choosing the Right Approach

Both methods effectively print the array in reverse order. The choice depends on your preference and coding style:

  • Loop with index decrement: This is easier to understand for beginners, as it explicitly tracks the index position.
  • Pointer arithmetic: This approach can be more concise and efficient for experienced programmers, but it requires familiarity with pointer concepts.

Beyond Reversing: Exploring further

These methods serve as a foundation for manipulating arrays in C. You can extend your knowledge by:

  • Combining reverse printing with conditional statements to print specific elements or ranges.
  • Modifying the code to reverse other data structures like linked lists.
  • Implementing functions to perform various array operations like sorting or searching.

Remember, understanding the logic behind these approaches empowers you to tackle more intricate array-related tasks in your C programming journey.


Learn coding the easy way. Find programming guides, examples and solutions with explanations.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button