Consider the following $\text{C}$ program.
#include<stdio.h>
#define XOR(a, b) (a) ^ (b)
void func (int *a, int *b)
{
*a = XOR (*b, *a);
*b = XOR (*a, *b);
*a = XOR (*b, *a);
}
main()
{
int a = 10, b = 20;
func (&a , &b);
printf(“%d %d \n”,a,b);
}
What will be the output of the program?
- $20 \; 10$
- $20 \; 20$
- $10 \; 10$
- $10 \; 20$