Źródło: Arkusze CKE
Przykład wywołania funkcji zamien w języku C++ może wyglądać w następujący sposób:
void zamien(int *a, int *b) {
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
Warianty odpowiedzi
-
A
zamien(12, 34)
-
B
zamien(&a, &b); // a, b - zmienne całkowite
-
C
zamien(*a, *b); // a, b - zmienne całkowite
-
D
zamien(m, n); // m, n - zmienne całkowite
Wyjaśnienie
Spójrz na nagłówek funkcji. Gwiazdki przy typach int (int *a, int *b) oznaczają, że funkcja przyjmuje wskaźniki. Spodziewa się zatem adresów pamięci, pod którymi znajdują się zmienne, a nie samych ich wartości.
Żeby przekazać do funkcji adres konkretnej zmiennej, musisz użyć operatora pobrania adresu, czyli ampersanda (&).
Dlatego wywołanie musi wyglądać tak: zamien(&a, &b). W ten sposób funkcja dostaje bezpośredni dostęp do oryginalnych zmiennych i może zmodyfikować ich wartość w pamięci komputera.