Результаты выполнения программы
Введите
число между 1 и 3, другое число - окончание:
1
Вы
ввели 1, поэтому была вызвана func1
Введите
число между 1 и 3, другое число - окончание:
2
Вы
ввели 2, поэтому была вызвана func2
Введите
число между 1 и 3, другое число - окончание:
3
Вы
ввели 3, поэтому была вызвана func3
Введите
число между 1 и 3, другое число - окончание:
10
Вы
ввели 10 для окончания
В программе
определены три функции — func1, func2,
func3 - каждая из которых принимает целый
аргумент и ничего не возвращает. Указатели
на эти три функции хранятся в массиве
f, который объявлен следующим образом:
void
(*f[3])(int)
= {func1, func2, func3};
Массив получает
в качестве начальных значений имена
3-х функций. Когда пользователь вводит
значения 1, 2 или 3, это значение (минус
1) используется в качестве индекса в
массиве указателей на функции.
Вызов функции
выполняется следующим образом:
(*f[choice-1])(choice);
В этом вызове
(*f[choice-1]) определяет указатель, расположенный
в элементе массива с индексом choice-1.
Указатель разыменовывается, чтобы
вызвать функцию, и choice передается функции
как аргумент. Каждая функция печатает
имя функции, чтобы показать, что вызов
верен.
20
Программирование-2013. 1 курс. Лекция
№10. Строки. Броницкая Н.А.