Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпори гос.docx
Скачиваний:
21
Добавлен:
13.09.2019
Размер:
2.93 Mб
Скачать

Стандартні функції мови с

Функції є будівельними блоками Сі. Більшість програм складаються із більшої кількості функцій.

Нижче подано загальну схему будь-якої Сі програми, що складається із декількох функцій:

int main(void)

{

/* ... */

}

тип_рез імя_f1(список_параметрів)

/* означення функції */

{

/* ... */

}

тип_рез імя_f2(список_параметрів)   /* означення функції */

{

/* ... */

}

...

...

...

тип_рез імя_fn(список_параметрів) /* означення функції */

{

/* ... */

}

Вибір імен функцій може бути довільним. Тут тип_рез вказує на тип результату, який повертає дана функція. Якщо функція не повертає жодної величини, то тип результату має бути void. Якщо функція не використовує жодних параметрів, то список_параметрів має бути замінений словом void.

Функції, які задекларовані із типом результату void не можуть повертати жодних величин.

Якщо для функції не вказано тип результату, то це означає, що вона повертає величину типу int. Для прикладу, вище згадана функція func(), могла б бути вказана як:

 func(void)

{

     return 10;

Функція повертається (закінчує виконання) зразу ж, як зустріне оператор return. Таким чином, оператор return примушує будь-яку функцію закінчити виконання.

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

У одній функції може бути більш, як один оператор return.

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

Аргументи функції

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

Ці змінні називаються формальними параметрами функції. Вони поводяться подібно будь-яким іншим локальним змінним усередині функції, створюються при вході у функцію і руйнуються при виході з неї. Як і у випадку з локальними змінними, формальним параметрам функції можна присвоювати значення або використовувати їх в будь-якому виразі, дозволеному в мовах С і C++. Не дивлячись на те, що ці змінні виконують спеціальну задачу отримання значень аргументів, переданих функцій, їх можна використовувати подібно будь-яким іншим локальним змінним.

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

По замовчуванню в мовах С і C++ для передачі аргументів використовується метод передачі по значенню. Це значить, що усередині функції взагалі не можна змінити змінні, що використовуються при виклику функції. Розглянемо наступну функцію.

 int sqr(int х)

{

х = х*х;

return х;

}

В даному прикладі при виконанні привласнення х=х*х модифікується тільки локальна змінна х. Аргумент, що використовується для виклику функції sqr(), має своє первинне значення.

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

Білет9