Code:
main()
{
// Create an array of function pointers. Index 0 points to printf, index 1 points to scanf
int (*functable[2])(char *format, ...) ={printf, scanf};
int i = 100;
// Equivalent to: printf("%d", i);
(*functable[0])("%d", i);
// Equivalent to: scanf("%d", i);
(*functable[1])("%d", i);
// Equivalent to: scanf("%d", i);
(*functable[1])("%d", i);
// Equivalent to: printf("%d", &i);
(*functable[0])("%d", &i);
}
Note that the 2 scanf calls are incorrect since scanf should take a pointer as a parameter.