Pointer- Swap Value

Code

#include <stdio.h>

void swap(int *p1, int *p2) {
    // Your logic here
    // p1 = 10, p2= 20
    *p1 ^= *p2; // p1 = 10 ^ 20
    *p2 ^= *p1; // p2 = 10 ^ 20 ^ 20   
    *p1 ^= *p2; // p1 = 10 ^ 20 ^ 10
}

int main() {
    int a, b;
    scanf("%d %d", &a, &b);

    swap(&a, &b);

    printf("a = %d ", a);
    printf("b = %d", b);

    return 0;
}

Solving Approach

USES XOR

 

 

Upvote
Downvote
Loading...

Input

10 20

Expected Output

a = 20 b = 10