Reverse an Array Using Only Pointers

Code

//pointer arithmetic 
#include <stdio.h>

void reverse_array(int *ptr, int n){
    if(n <= 0) return; 
    int l = 0, r = n - 1 - l; 
    while(l<=r){
     int tmp = *(ptr + l); 
        *(ptr + l) = *(ptr + r); 
        *(ptr + r) = tmp; 
        l++; 
        r--;
    }   
}

int main(){
    int n; 
    scanf("%d",&n);
    int arr[100];
    for(int i = 0; i<n; i++){
        scanf("%d",&arr[i]);
    }
    reverse_array(arr, n); 
    for(int i = 0; i < n; i++){
        printf("%d",arr[i]);
        if(i < n - 1){
            printf(" ");
        }
    }
    
    
    return 0;
} 

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

5 1 2 3 4 5

Expected Output

5 4 3 2 1