1.3 Організація та активація функцій з іеформаційним зв’язком через аргументи і параметри. Передача значень функції

В С++ є три способи передачі аргументів у функцію: передача за значенням, передача за посиланням з аргументами-вказівниками і передача за посиланням з аргументами-посиланнями.

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

У попередньому прикладі функція sum( ) передає копії змінних nach, kon, shagr, які використовуються функцією як значення для параметрів nachr, konr, shagr.

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


1.4 Використання вказівників при роботі з функцією, з даними аргумента і параметрами. Передача вказівників

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

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

Другий спосіб полягає в тому, щоб використати як аргумент функції вказівник на масив.


1.5 Передача за посиланням

В С++ можна здійснювати передачу за посиланням з аргументами-посиланнями. Посилання є неявним вказівником і використовується як інше ім’я вже існуючого об’єкта. Формат визначення посилання є таким:

<тип>& <ім’я посилання> = <вираз; або

<тип>& <ім’я посилання> (<вираз>);

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

int х = 7; //Визначена й ініціалізована змінна х

int& ref= х;//Визначене посилання, значенням її є адреса змінної х

Для доступу до вмісту ділянки пам’яті, на який вказує посилання, не треба виконувати розіменування, що є обов’язковим при зверненні до значення змінної через вказівник. Кожна операція над посиланням є операцією над тим об’єктом, з яким вона пов’язана. Можна змінити значення х, записавши х = 35; або ref = 35;.

Існують обмеження при визначенні і використанні посилань:

Не можна взяти адресу змінної типу посилань;

Не можна створити масив посилань;

Не можна створити вказівник на посилання;

Не допускаються посилання на бітові поля.

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

1.6 Організація та активація функцій з інформаційним зв’язком через зовнішні змінні

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


Информация о работе «Розробка програм мовою С++»
Раздел: Информатика, программирование
Количество знаков с пробелами: 42425
Количество таблиц: 0
Количество изображений: 17

Похожие работы

Скачать
29682
0
0

... системах наукової класифікації. Однак перш ніж зануритися в об’єктно-орієнтовану розробку, давайте розглянемо деякі з властивостей, загальні для класу "об'єктів". Абстракція Ціль об'єктно-орієнтованого програмування полягає в тому, щоб побачити в задачі абстракції об'єктів реального світу. Що за реальні об'єкти малися на увазі? Буквально будь-які, аби вони давали представлення про функці ...

Скачать
27398
0
2

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

Скачать
13575
0
8

... x запишеться у вигляді наступної функції цей запис представляє собою приклад програми на мові Lisp. В даному курсовому проекті на мови Lisp розроблено програму Sierpins, яка реалізує побудову рекурсивних кривих Серінського. На початку програми встановлюється значення змінної *VMode*‚ яка керує установкою відео режиму, і за замовчуванням встановлена в значення 18. Ця установка відповідає ...

Скачать
28806
1
17

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

0 комментариев


Наверх