Lekcja 35
Funkcje - argumenty formalne i aktualne. Porównanie metod przekazywania argumentów do funkcji.
Wprowadzenie
W poprzedniej lekcji przedstawiłem Ci różne metody przekazywania argumentów do funkcji. Wiesz już dobrze w jaki sposób przekazywać argumenty do funkcji tak, aby możliwa była zmiana ich wartości.
W tej lekcji przedstawię Ci dalsze informacje na temat argumentów funkcji i przekazywania argumentów do funkcji, a także wyjaśnię kwestie związane z formalnym nazewnictwem dotyczącym funkcji. Dowiesz się o przekazywaniu typów prostych, typów pochodnych oraz typu strukturalnego.
Argumenty formalne i aktualne
Wiesz już dobrze, że w definicji i deklaracji funkcji może znajdować się lista argumentów. Ta lista argumentów nazywana jest listą argumentów formalnych natomiast argumenty znajdujące się w deklaracji funkcji nazywane są argumentami formalnymi.
Każda funkcja może być oczywiście uruchomiona z różnymi wartościami argumentów. Takie uruchomienie funkcji nazywamy wywołaniem funkcji, natomiast argumenty przekazane do funkcji w momencie jej wywołania nazywamy argumentami aktualnymi.
Spójrz zatem na poniższy program:
#include <iostream>
using namespace std;
int porownaj(int, int);
int main()
{
int liczba1=5,liczba2=8;
int wynik;
wynik = porownaj(liczba1, liczba2); // wywolanie funkcji - tutaj argumenty aktualne
cout <<"Wynik porownania liczb to "<<wynik<<endl;
wynik = porownaj(2,2); // wywolanie funkcji - tutaj argumenty aktualne
cout <<"Wynik porownania liczb to "<<wynik<<endl;
cout <<endl<<"Nacisnij ENTER aby zakonczyc"<<endl;
getchar();
return 0;
}
int porownaj (int a, int b) // definicja funkcji - tutaj argumenty formalne
{
if (a==b)
return 0;
else if (a<b)
return -1;
return 1;
}
program nr 35.1
W programie znajduje się definicja jednej funkcji - funkcji porownaj. Zadaniem tej funkcji jest porównanie wartości dwóch argumentów typu int. Funkcja zwraca wartość 0 gdy oba argumenty są jednakowe, wartość -1 gdy pierwszy argument jest mniejszy od drugiego, a 1 gdy pierwszy argument jest większy od drugiego.
Przyjrzyj się komentarzom zawartym w programie - mam nadzieję, że dzięki nim jest dla Ciebie już jasne, gdzie znajdują się argumenty formalne, gdzie aktualne i w którym miejscu następuje wywołanie funkcji.
Co prawda powyższe definicje i wyjaśnienia dotyczące argumentów formalnych i aktualnych nie są Ci tak naprawdę do niczego potrzebne z punktu widzenia wiedzy praktycznej, mimo to warto, żebyś znał chociaż podstawowe nazewnictwo występujące w języku C++, bowiem pojawia się ono niekiedy w literaturze fachowej i warto wtedy wiedzieć o czym mowa. Poza tym jeśli chcesz kiedyś profesjonalnie zajmować się programowaniem, to wstydem byłoby gdybyś takich podstawowych pojęć nie znał.