Program to reverse an array using a pointer In C++

In this post here we discuss writing a program to reverse an array using a pointer in C++.

In this program, we make use of the * operator. The * (asterisk) operator denotes the value of a variable. The * operator at the time of declaration denotes that this is a pointer, otherwise, it denotes the value of the memory location pointed by the pointer.

  • reverse function : is used to reverse the array through pointers
  • swap function : is used to swap two memory contents
  • print function : will print the array

Approach: The reverse function takes two pointers, one pointing to the beginning of the array and the other pointing to the end. The contents of the memory address pointed by these two pointers are swapped, and the first pointer’s value is increased, while the second pointer’s value is decreased.

Join Our Community

Join our WhatsApp Group To know more about Programming Language tips, tricks and knowledge about and how to start learning any programming language.

Examples:

Input : array = 2, 4, -6, 5, 8, -1
Output : reverse_array = -1, 8, 5, -6, 4, 2

Input : array = 1, 4, -6, 8, -10, -12
Output : reverse_array = -12, -10, 8, -6, 4, 1
// CPP program to reverse array
// using pointers
#include <iostream>
using namespace std;

// Function to swap two memory contents
void swap(int* a, int* b)
{
	int temp = *a;
	*a = *b;
	*b = temp;
}

// Function to reverse the array through pointers
void reverse(int array[], int array_size)
{

	// pointer1 pointing at the beginning of the array
	int *pointer1 = array,

		// pointer2 pointing at end of the array
		*pointer2 = array + array_size - 1;
	while (pointer1 < pointer2) {
		swap(pointer1, pointer2);
		pointer1++;
		pointer2--;
	}
}

// Function to print the array
void print(int* array, int array_size)
{

	// Length pointing at end of the array
	int *length = array + array_size,

		// Position pointing to the beginning of the array
		*position = array;
	cout << "Array = ";
	for (position = array; position < length; position++)
		cout << *position << " ";
}

// Driver function
int main()
{

	// Array to hold the values
	int array[] = { 2, 4, -6, 5, 8, -1 };

	cout << "Original ";
	print(array, 6);

	cout << "Reverse ";
	reverse(array, 6);
	print(array, 6);
	return 0;
}

Output:

reverse array = -1  8  5  -6  4  2

Default image
Lingaraj Senapati
Hey There! I am Lingaraj Senapati, the Co-founder of lingarajtechhub.com My skills are Freelance, Web Developer & Designer, Corporate Trainer, Digital Marketer & Youtuber.
Articles: 253

Newsletter Updates

Enter your email address below to subscribe to our newsletter