According to my instructor, the first printf should output "1 and 2" and the 2nd printf will output "2 and 2". I'm not seeing it. I thought the first one would swap them and output "2 and 1", and as for the second printf, I have no idea how to work with these pointers. Any help will be greatly appreciated.Code:#include <stdio.h> void swap1(int, int); void swap2(int*, int*); int main() { int i = 1, j = 2; swap1(i, j); printf("%d and %d\n", i, j); /* For Problem #57 */ swap2(&i, &j); printf("%d and %d\n", i, j); /* For Problem #58 */ return 0; } void swap1(int i, int j) { int tmp = i; i = j; j = tmp; } void swap2(int *i, int *j) { int tmp = *i; *i = *j; tmp = *j; }