/*------------------------------------------------------------------*/ /* fnpointers.c (Function pointers) */ /*------------------------------------------------------------------*/ #include /*------------------------------------------------------------------*/ int sqr(int i) /* Return i squared. */ { return i * i; } /*------------------------------------------------------------------*/ int main(void) /* Demonstrate function pointers. */ { int i; /* pf is a variable which, when dereferenced, is a function that takes an int and returns an int. */ int (*pf)(int); /* An ordinary function call */ i = sqr(5); printf("%d\n", i); /* A function call through a function pointer */ pf = sqr; i = (*pf)(5); printf("%d\n", i); /* Unusual ways of using function pointers */ pf = &sqr; i = (*pf)(5); printf("%d\n", i); pf = sqr; i = pf(5); printf("%d\n", i); pf = *sqr; i = pf(5); printf("%d\n", i); return 0; }