Указатель на функцию используется в любой ситуации, когда вызываемая функция определяется во время выполнения, а не во время компиляции. Это включает в себя обратные вызовы, но может также использоваться, например, в качестве альтернативы переключателя и для адаптации поведения функции путем передачи указателя функции, который определяет это поведение - так работает, например, функция стандартной библиотеки qsort()
Включение сортировки объектов любого типа.
Я использовал их, в частности, для реализации синтаксического анализатора командной строки, который оценивает выражения C, введенные как строки, во время выполнения и может включать вызовы функций. При этом используется таблица символов для поиска указателя на функцию, чтобы ее можно было вызывать по требованию оператора.
Все, что вы когда-либо хотели бы узнать по этому вопросу, можно найти на Учебники по указателям на функции
В конце указатели на функции - лишь один из тех редко используемых инструментов, которые вы держите в своей сумке. Если вы понимаете их, когда возникнет ситуация, когда это может обеспечить решение, вы, надеюсь, узнаете это.