Kirjoitetaan täydellinen ohjelma, jossa havainnollistetaan funktiopointterin käyttöä:
#include <stdio.h>
int summa (int, int);
void main(void) { int (*p)(int, int); int a,b,tulos; p=summa; // summa on summafunktion osoite printf ("Anna kaksi lukua"); scanf ("%d %d",&a,&b); tulos =(*p)(a,b); // Kutsutaan p:n osoittamaa funktiota printf ("\nLukujen summa on %d", tulos); }
int summa(int eka, int toka) { return eka+toka; }
Funktiota, johon p osoittaa voitaisiin kutsua myös seuraavasti:
tulos = p(a,b);
Tässä kutsussa ei näy, että p on funktiopointteri. Se voisi periaatteessa olla myös funktio.
Epäselvyyksien välttämiseksi suositetaan käytettäväksi esimerkissä käytettyä funktion epäsuoraa osoitusta:
tulos =(* p)(a,b);