Звертання до цієї функції слід здійснювати таким чином swap(&x,&y);
Оператор повернення використовується для того, щоб можна було завершити виконання функції в довільному місці, а не тільки при досягненні кінця тіла функції і для повернення значення функції.
В мові Сі використовуються два типи оператора повернення:
§ один для повернення управління з функцій (котрі не повертають значень),
§ другий для повернення значень.
Вони записуються таким чином:
return;
return <вираз>;
В мові Сі можна описувати змінні, котрі містять вказівники на функції, тобто адреси функцій, і здійснювати звертання до функцій з допомогою цих вказівників.
Приклад:
double y;
/* Опис функції */
double linefunc (double x,double a, double b);
double *func;
func=&linefunc;
y=(*func)(2.4,-5.1,7.);
Вказівник на цю функцію можна також передати як аргумент в іншу функцію.
Виклик функції зі змінною кількістю параметрів.
При виклику функції із змінним числом параметрів задається будь-яке необхідне число аргументів. У оголошенні і визначенні такої функції змінне число аргументів задається багатокрапкою в кінці списку формальних параметрів або списку типів аргументів.
Всі аргументи, задані у виклику функції, розміщуються в стеку. Кількість формальних параметрів, оголошених для функції, визначається числом аргументів, які беруться із стека і привласнюються формальним параметрам.
Програміст відповідає за правильність вибору додаткових аргументів із стека і визначення числа аргументів, що знаходяться в стеку.
Прикладами функцій із змінним числом параметрів є функції з бібліотеки функцій мови С++, що здійснюють операції введення-виводу інформації (printf,scanf і тому подібне).
Рекурсія.
Рекурсією називається алгоритмічна конструкція, де підпрограма викликає сама себе. Рекурсія дає змогу записувати циклічний алгоритм, не застосовуючи команд циклу.
Прямою (безпосередньою) рекурсією є виклик функції усередині тіла цієї функції.