Указатель на функцию

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.

Пример описывает то, что рассказывали Дейтелы в своей книге по обучению программирования средствами C++. Я буду описывать чуть по своему, используя Visual Studio Express 2012. В любом случае этот пример — это пример Харви и Пола Дейтела

Тема в их книге называется как «Указатели на функции» и в моей книге идет как раздел 5.11.
Сама книга Дейтел Х., Дейтел П. — Как программировать на C++(3rd)(2001)

В этом примере создается массив, который в зависимости от выбора пользоватея сортируется по убыванию или же возрастанию. Так как я пишу для совсем новичков, то я опишу поэтапно.

Чтобы сортировать какой-то массив, нужно этот массив создать и заполнить значениями, с этого и начинается написание программы по сортировке массива. Пишется код.
Код Visual Studio

После написания такого кода возникает необходимость отображения массива на экране. Если подумать, то мы будем показывать исходный массив, будем показывать модифицированный. Одна операция будет выполнена как минимум дважды, а это плохо при написании всего в одну кучу, потому что увеличивает количество строк кода программы, следовательно увеличивает время написания программы и следовательно повышает вероятность ошибок и усложняет поиск ошибок. На таком маленьком коде — это едва заметно, но постепенно код будет расти и чем больше будет, тем это будет заметнее. У хорошей программы как и у хорошего здания должен быть крепкий фундамент, поэтому выносим операцию отображения массива на экране в отдельную функцию.
Код Visual Studio

Прежде чем описывать дальше, я поясню маленький код, который будет использован в программе и может вызвать некоторое непонимание своей работы.
Код Visual Studio

Продолжая описание темы, предупреждаю, что алгоритм пузырьковой сортировки должен быть вам уже знаком, потому что иначе понять материал достаточно сложно. Далее я добавляю сразу три функции в основной код. Две из них — это функции, указатель для которых будет использован, а третья — пузырьковая сортировка.
Код Visual Studio

  • Имя функции — начальный адрес её кода
  • * имеет приоритет ниже чем круглые скобки, поэтому указатель на функцию нужно заключать в скобки
  • int *func(int a,int b) — Функция принимает два параметра на целое и возвращает указатель на целое
  • int (*func)(int a,int b) — Указатель на функцию с двумя параметрами, каждый параметр — целое
Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Яндекс.Метрика

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

В чем заключается многозадачность Windows? Она глючит и pаботает одновpеменно.

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок