Menu
Coddy logo textTech

Referencje jako parametry

Lekcja 9 z 14 w kursie Wskaźniki w C++ w Coddy.

Teraz możemy zobaczyć, jak ułatwić sobie pracę, używając referencji jako argumentów podczas wywoływania funkcji. 

Jeśli wrócimy do lekcji o przekazywaniu wskaźników jako parametrów, wspomnieliśmy, że gdy przekazujemy wartości do funkcji, wartości, na których operujemy wewnątrz funkcji, są kopiami oryginalnych przekazanych wartości. 

Użyliśmy wskaźników, aby rozwiązać ten problem, ale zamiast używać adresów, dereferencji, wskaźników itd., możemy po prostu oznaczyć parametry, które przyjmujemy, jako referencje i wykonywać zwykłe operacje tak jak w przypadku zwykłych wartości

// Zamiast tego
void swap(int *x, int *y) {
    int temp = *x;
    *x = *y;
    *y = temp;
    cout << *x << " " << *y << endl;
}

// Możemy zrobić tak
void swap(int &x, int &y) {
    int temp = x;
    x = y;
    y = temp;
    cout << x << " " << y << endl;
}

Teraz, jeśli wywołamy funkcję swap(), wartości dwóch przekazanych liczb całkowitych zostaną trwale zmienione. Zamiast więc pobierać adresy pamięci tych wartości i zmieniać wartości znajdujące się pod tymi adresami przez ich dereferencję, po prostu przekazujemy referencje do rzeczywistych wartości jako argumenty i wykonujemy na nich operacje. Ponieważ odnoszą się one do oryginalnych wartości, każda zmiana jest trwała

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

challenge icon

Wyzwanie

Łatwy

Dokończ funkcję Calculator  z dwóch lekcji temu, ale zamiast używać wskaźników, użyj referencji do wartości zmiennych large i small. W funkcji odejmij od large różnicę między large i small, a small dodaj do siebie.

Dane wejściowe
5 3

Dane wyjściowe
5 3
3 6

Wyjaśnienie
Odjęcie od 5 różnicy między 5 a 3, która wynosi 2, daje 5 - 2 = 3, a dodanie 3 do 3 daje 6

Uwaga: NIE pisz funkcji main()

Spróbuj swoich sił

#include <iostream>

using namespace std;

void Calculator(// Przyjmij argumenty: large i small przez referencję) {
    // Wpisz kod wykonujący obliczenia
}


// NIE pisz funkcji main()

Wszystkie lekcje w sekcji Wskaźniki w C++

Poćwicz samodzielnie: Kompilator C++ online