Consider the following code snippet:
#include <stdio.h>
void s1(int*, int);
void s2(int*, int);
void (*k[2])(int*, int);
int main()
{
int a = 4;
int b = 2;
k[0] = s1;
k[1] = s2;
k[0](&a, b);
printf("%d %d ", a, b);
k[1](&a, b);
printf("%d %d\n", a, b);
return 0;
}
void s1(int *k, int q)
{
int tmp = *k;
*k = q;
q = tmp;
}
void s2(int *k, int q)
{
int tmp = *k;
*k = q;
q = tmp;
}
The output of the above program is :
- 4242
- 2222
- 4444
- 2424