Ноу Інти, лекція, покажчики і функції в мові програмування з

Анотація: В лекції вивчаються питання програмування функцій, аргументами яких можуть бути покажчики, а також функції, які повертають значення через покажчики. У практичній частині розглядаються приклади з їх повної програмної реалізацією.

Теоретична частина

У попередній лабораторній роботі розглядалися приклади функцій, аргументами яких виступали покажчики. У даній лабораторній роботі докладніше будуть розглянуті питання, що стосуються покажчиків і функцій.

Раніше було відзначено, що в мові С аргументи передаються в функції за значенням і не існує прямого способу змінити змінну викликає функції, діючи всередині викликається функції. Завдяки аргументам-вказівниками функція може звертатися до об'єктів в викликала її функції, в тому числі модифікувати їх [11.1]. Як приклад розглянемо функцію swap (). в завдання якої входить обмін речовин місцями. Для вирішення такого завдання необхідно передати з викликає програми (наприклад, з головної функції main ()) в функцію покажчики на змінні, які потрібно змінити. Програмний код рішення прикладу:

Результат виконання програми показаний нa рис. 11.1.

Ноу Інти, лекція, покажчики і функції в мові програмування з


Мал. 11.1. Результат обміну даними, виконаного функцією swap ()

Покажчики, що передаються в функцію, можуть бути покажчиками на покажчики. Покажчики можуть вказувати на початок будь-якого масиву і т. Д. Покажчики можуть використовуватися для захисту масивів, над якими необхідно провести деякі обчислення або перетворення.

Особливою властивістю покажчиків можна вважати можливість використовувати їх в якості значень, що повертаються функцій. Оскільки функції повертають тільки одне значення. то кілька значень одного типу можна помістити в масив. а потім покажчик на цей масив використовувати в якості значення, що повертається.

Загальна форма визначення функції, яка повертає покажчик. наступна:

Розглянемо приклад, в якому здійснюється складання двох одновимірних масивів і результат повертається через покажчик.

Програмний код рішення прикладу:

Програма не вимагає особливих пояснень.

Покажчики повертаються подібно значенням будь-яких інших типів даних. Щоб повернути покажчик. функція повинна оголосити його тип як тип значення, що повертається. Таким чином, якщо функція повертає покажчик. то значення. що використовується в її інструкції return. також має бути дороговказом. Зокрема, багато бібліотечні функції, призначені для обробки рядків, повертають покажчики на символи.

У мові С існує такий механізм як покажчик на функцію. Припустимо, існує кілька шляхів різних операцій з даними. В цьому випадку виявляється зручним визначити покажчик на функцію. і використовувати його там, де потрібно проводити розрахунок для різних функцій.

Типове визначення покажчика на функцію наступне:

Покажчики на функції часто використовуються в системах, керованих меню [11.2]. Користувач вибирає команду меню (одну з кількох). Кожна команда обслуговується своєю функцією. Покажчики на кожну функцію знаходяться в масиві покажчиків. Вибір користувача служить індексом, за яким з масиву вибирається покажчик на потрібну функцію.

Іншим типовим застосуванням покажчиків на функції є реалізація узагальнених алгоритмів, наприклад, алгоритмів сортування та пошуку. В цьому випадку критерії сортування і пошуку реалізуються у вигляді окремих функцій і передаються за допомогою покажчиків на функції як параметр реалізації основного алгоритму.