/*------------------------------------------------------------------*/ /* fnpointers.c (Demonstrate function pointers) */ /*------------------------------------------------------------------*/ #include int sqr(int i) { return i * i; } int main(void) { 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; }