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

Прокрутити вниз

Передача аргументів у функцію в C++ індивідуальні уроки онлайн з програмування

1. Що таке аргументи у функції?

📌 Аргументи (параметри) — це значення, які ми передаємо у функцію.
Функція може використовувати ці значення у своєму коді.

Приклад:

#include <iostream>
using namespace std;

void greet(string name) {  
    cout << "Привіт, " << name << "!" << endl;
}

int main() {
    greet("Анна");   // Виклик функції з аргументом "Анна"
    greet("Олексій"); // Виклик функції з аргументом "Олексій"
    return 0;
}

Результат:

Привіт, Анна!  
Привіт, Олексій!  

📌 Функція greet() приймає ім’я як аргумент і виводить вітання.

2. Передача аргументів за значенням

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

Приклад:

#include <iostream>
using namespace std;

void increase(int num) {  
    num = num + 1;  // Змінюємо значення змінної всередині функції
    cout << "Всередині функції: " << num << endl;
}

int main() {
    int a = 5;
    increase(a);  // Викликаємо функцію, передаємо a
    cout << "Після виклику функції: " << a << endl;
    return 0;
}

Результат:

Всередині функції: 6  
Після виклику функції: 5  

📌 Значення a не змінилося після виходу з функції, бо передавалася копія.

3. Передача аргументів за посиланням (&)

📌 Передача за посиланням означає, що функція працює безпосередньо з оригінальною змінною.
Будь-які зміни всередині функції впливають на змінну в main().

Приклад:

#include <iostream>
using namespace std;

void increaseByRef(int &num) {  
    num = num + 1;
    cout << "Всередині функції: " << num << endl;
}

int main() {
    int a = 5;
    increaseByRef(a);  // Передаємо змінну за посиланням
    cout << "Після виклику функції: " << a << endl;
    return 0;
}

Результат:

Всередині функції: 6  
Після виклику функції: 6  

📌 Тут a змінило значення, бо передавалося не копія, а сама змінна.

4. Передача аргументів за вказівником (*)

📌 Передача за вказівником схожа на передачу за посиланням, але працює через адресу пам’яті.

Приклад:

#include <iostream>
using namespace std;

void increaseByPointer(int *num) {  
    *num = *num + 1;  // Використовуємо * для зміни значення за адресою
    cout << "Всередині функції: " << *num << endl;
}

int main() {
    int a = 5;
    increaseByPointer(&a);  // Передаємо адресу змінної
    cout << "Після виклику функції: " << a << endl;
    return 0;
}

Результат:

Всередині функції: 6  
Після виклику функції: 6  

📌 Ми передали адресу змінної a, тому її значення змінилося.

5. Коли яку передачу використовувати?

Вид передачі Як працює Коли використовувати
За значенням Створюється копія змінної, зміни не впливають на оригінал Якщо не треба змінювати аргумент
За посиланням (&) Передається сама змінна, зміни залишаються Якщо треба змінити аргумент
За вказівником (*) Передається адреса змінної, працює схоже на посилання Якщо треба працювати з пам’яттю

6. Практичні завдання

Завдання 1:

Створи функцію square(int &x), яка приймає число за посиланням і зводить його в квадрат.

Завдання 2:

Напиши функцію swap(int &a, int &b), яка міняє два числа місцями.

Завдання 3:

Створи функцію doubleByPointer(int *x), яка подвоює число за вказівником.

📝 Підсумок 

Передача за значенням не змінює вихідну змінну.
Передача за посиланням змінює вихідну змінну напряму.
Передача за вказівником працює з адресами пам’яті.

🚀 Наступний урок: Масиви у функціях! Передача аргументів у функцію в C++ індивідуальні уроки онлайн з програмування

Insert math as
Block
Inline
Additional settings
Formula color
Text color
#333333
Type math using LaTeX
Preview
\({}\)
Nothing to preview
Insert