DALSZE INFORMACJE 81 Przekazywanie parametrów Gdy wywołujemy funkcję, wartość argumentów, z którymi ją wywołujemy, jest kopiowana do funkcji. Kopiowana — to znaczy, że nie możemy normalnie zmienić wartości zewnętrznych dla funkcji zmiennych. Formalnie mówi się, że w C argumenty są przekazywane przez wartość , czyli wewnątrz funkcji operujemy tylko na ich kopiach. Możliwe jest modyfikowanie zmiennych przekazywanych do funkcji jako parametry — ale do tego w C potrzebne są wskaźniki. Funkcje rekurencyjne JÄzyk C ma możliwoÅÄ tworzenia tzw. funkcji rekurencyjnych . Jest to funkcja, która w swojej wÅasnej deï¬nicji (ciele) wywoÅuje samÄ
siebie. Najbardziej klasycznym przykÅadem może tu byÄ silnia. Napiszmy sobie zatem naszÄ
funkcjÄ rekurencyjnÄ
, która oblicza silniÄ: int silnia (int liczba) { int sil; if (liczba unsigned count; unsigned fib_rec(unsigned n) { ++count; return n
(…)
… (iteracyjne, przy użyciu pętli). Flagowym przykładem
może tu być funkcja obliczająca wyrazy ciągu Fibonacciego:
#include <stdio.h>
unsigned count;
unsigned fib_rec(unsigned n) {
++count;
return n<2 ? n : (fib_rec(n-2) + fib_rec(n-1));
}
unsigned fib_it (unsigned n) {
unsigned a = 0, b = 0, c = 1;
++count;
if (!n) return 0;
…
... zobacz całą notatkę
Komentarze użytkowników (0)