Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.45 Mб
Скачать

5.2 Види виклику функцій

Приклад 5.2. Види виклику функцій.

#include <stdio.h>

#include <stdlib.h>

int sub (int a, int b){

int q;

q=a-b;

return (q);

}

int main ()

{

int x=2, y=1, t;

t = sub(7, 4);

printf("First %i \n", t);

printf("Second %i \n", sub(7, 4));

printf("Third %i \n", sub (x, y));

t = 4 + sub(x, y);

printf("Fourth %i \n", t);

system("PAUSE");

return 0;

}

Результат роботи програми:

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

Перший варіант виклику:

t = sub(7, 4);

printf("First %i \n", t);

Другий варіант виклику:

printf("Second %i \n", sub(7, 4));

У цьому варіанті функція sub викликається в якості аргументу функції printf.

Третій варіант виклику:

printf("Third %i \n", sub(x, y));

У цьому варіанті замість числових літералів (7, 4) в якості аргументів функції sub виступають змінні x та y.

Четвертий варіант виклику:

t = 4 + sub(x, y);

printf("Fourth %i \n", t);

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

5.3 Область видимості

Видимість змінних, оголошених у функції обмежується тілом функції, тобто вони є локальними змінними функції і не можуть бути використані поза нею. Наприклад, у попередньому прикладі було б неможливо використовувати змінні a, b або q безпосередньо у функції main, так як вони є локальними змінними функції add. Крім того, було б неможливо використовувати змінну t у функції add, так як вона є локальною змінною функції main.

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

5.4 Порожній тип void

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

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

Приклад 5.3. Використання порожнього типу void.

#include <stdio.h>

#include <stdlib.h>

void message () /* функція яка не повертає та не

приймає значень*/

{

printf("THIS IS SPARTA!!!\n ");

}

int main ()

{

message ();

system("PAUSE");

return 0;

}

Результат роботи програми:

В списку параметрів функції також може використовуватися void, для показу того, що функція не має параметрів при виклику. Наприклад, функція message могла бути визначена як:

void message (void)

{

printf("THIS IS SPARTA!!!\n");

}

Хоча не обов'язково вказувати void в списку параметрів. У мові C список параметрів може бути порожнім, якщо не потребує жодних параметрів. Дужки писати необхідно, навіть за відсутності параметрів. Їх наявність вказує на те, що це виклик функції, а не ім'я змінної або інший оператор мови C.

message();

5.5 Передача аргументів у функцію

Аргументи у функцію можуть бути передані за значенням (by value).

Приклад 5.4. Передача параметрів за значенням.

int x = 7, y = 4, t;

t = add(x , y);

У функцію add передаються значення змінних х і у, тобто 7 і 4 відповідно (рис. 5.3).

Рисунок 5.3 – Передача параметрів у функцію за значенням.

При виклику функції add, у локальні змінні a і b копіюються значення змінних x і y. Тому будь-яка зміна значень a або b в межах функції add, не вплине на значення змінних х і у.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]