Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++ Metod_new.doc
Скачиваний:
3
Добавлен:
10.11.2019
Размер:
939.52 Кб
Скачать

3. Передача значень

Передача змінних у функцію виконується:

  • за значенням (передача копіюванням);

  • за адресою (передача по посиланню).

При передачі за значенням копія значення змінної передається функції, що приймає (рис. 2.).

По умовчанню всі параметри передаються за значенням, крім випадків передачі масивів. Масиви завжди передаються за адресою.

Рис.2. Передача змінної i за значенням.

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

Всі змінні розміщаються в ОЗП за адресами.

Приклад:

int i = 4;

char ar[2] = {’A’,’B’};

Ім’я змінної

Пам’ять

Адреса

i

4

34440

ar[0]

A

34442

ar[1]

B

34443

Приклад:

#include <iostream.h>

#include <string.h>

void t(char c[4])

{

cout << c << “\n”;

strcpy(c,”USA”);

return;

}

void main()

{

char n[4] = “ABC”;

t(n);

cout << n << “\n”;

}

Результат

АВС

USA

Для передачі за адресою даних які не є масивом, потрібно зробити таке:

  1. Перед змінною у функції, що викликає, поставити символ амперсант (&);

  2. Перед кожним використанням змінної у функції, що приймає, поставити символ (*).

Приклад:

#include <iostream.h>

void dd(int *t)

{

*t = 100;

return;

}

void main()

{

int i = 200;

dd(&i);

cout << i;

}

Виведення: 100.

4. Повертаємі значення і прототипи функцій

C++ потребує прототипу для кожної написаної функції.

Прототипи гарантують відповідність типів даних переданих параметрів і повертаємих значень функції.

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

Попередження: не повертайте глобальних змінних, вони відомі всій програмі.

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

Приклад: знаходження min і max із 2-х значень.

#include <iostream.h>

int maximum(int num1, int num2)

{

int max;

max = (num1 > num2) ? (num1) : (num2);

return (max);

}

int minimum(int num1, int num2)

{

int min;

min = (num1 < num2) ? (num1) : (num2);

return (min);

}

void main()

{

int num1, num2;

int min, max;

cin >> num1 >> num2;

max = maximum(num1,num2);

min = minimum(num1,num2);

cout << min<<”\n” << max;

}

Прототипи функцій

Слово прототип визначають як “модель”. У C++ прототип функції є моделлю дійсної функції. Ви повинні описати прототипи усіх функцій ваших програм.

Розроблювачі C++ думали, що усі функції повинні мати прототип. Не треба описувати прототипи бібліотечних функцій, тому що розроблювачі помістили такі прототипи в заголовні (header) файли на вашому диску.

Ви включали прототип cout і cin у кожну програму за допомогою оператора:

#include <iostream. h>

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

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

Приклад: Повернення символу по ASCII - коду.

#include <iostream.h>

char ascii(int num);

void main()

{

int num;

char asc_char;

cin >> num;

asc_char = ascii(num);

cout << asc_char;

}

char ascii(int num)

{

char asc_char;

asc_char = (char) num;

return (asc_char);

}

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