wleci
O mnieProjektyBlogKontakt
Kontakt
Wróć do bloga
FunkcjePodstawyProgramowanie

Etap 4: Funkcje i przekazywanie argumentów w C++

Dogłębna analiza definiowania funkcji, prototypów oraz różnic między przekazywaniem przez wartość i referencję.

11 lutego 20262 min czytania
Udostępnij:

Funkcje w C++: Modułowość i Reużywalność

Funkcje to podstawowe bloki konstrukcyjne programu, które pozwalają na dzielenie złożonych problemów na mniejsze, zarządzalne fragmenty. Na Twoim poziomie kluczowe jest nie tylko to, jak funkcję napisać, ale jak sprawnie przesyłać do niej dane.


1. Budowa Funkcji

Każda funkcja składa się z typu zwracanego, nazwy, listy parametrów oraz ciała funkcji.

cpp
typ_zwracany nazwa_funkcji(parametry) { // treść return wartosc; // jeśli typ nie jest void }

Ważne: Jeśli funkcja znajduje się poniżej funkcji main(), musisz na górze pliku umieścić jej prototyp (deklarację).

cpp
double obliczSrednia(int a, int b); // Prototyp

2. Przekazywanie argumentów przez wartość

To domyślny sposób w C++. Funkcja otrzymuje kopię zmiennej. Zmiany dokonane wewnątrz funkcji nie wpływają na zmienną oryginalną.

cpp
void zwieksz(int x) { x = x + 10; // Zmienia tylko lokalną kopię } int main() { int liczba = 5; zwieksz(liczba); // liczba nadal wynosi 5 }

3. Przekazywanie przez referencję (&)

Używając symbolu &, tworzysz alias do oryginalnej zmiennej. Funkcja operuje bezpośrednio na danych z miejsca wywołania. Jest to wydajniejsze (brak kopiowania dużych struktur) i pozwala funkcji „zwrócić” więcej niż jedną wartość.

cpp
void faktycznieZwieksz(int &x) { x = x + 10; // Zmienia oryginał }

4. Przekazywanie tablic do funkcji

Tablice są specyficzne – w C++ tablica przekazywana do funkcji automatycznie „degraduje” do wskaźnika na jej pierwszy element. Oznacza to, że funkcja zawsze operuje na oryginale, a Ty musisz dodatkowo przekazać rozmiar tablicy.

cpp
void wypiszTablice(int tab[], int rozmiar) { for(int i = 0; i < rozmiar; i++) { std::cout << tab[i] << " "; } }

Pułapki i dobre praktyki na kolokwium

  1. Zwracanie wartości (return): Pamiętaj, że funkcja kończy swoje działanie natychmiast po napotkaniu return. Jeśli funkcja ma zwracać int, upewnij się, że każda ścieżka logiczna (np. wewnątrz if) kończy się instrukcją return.
  2. Zmienne lokalne: Zmienne zadeklarowane wewnątrz funkcji przestają istnieć po jej zakończeniu. Nigdy nie próbuj zwracać referencji do zmiennej lokalnej!
  3. void: Używaj void, gdy funkcja ma coś wykonać (np. wypisać tekst), a nie obliczyć wartość. W funkcjach void instrukcja return; (bez wartości) służy do wcześniejszego przerwania funkcji.

Przykład: Funkcja zamieniająca dwie wartości (Swap)

To klasyczne zadanie egzaminacyjne sprawdzające rozumienie referencji:

cpp
void zamien(int &a, int &b) { int temp = a; a = b; b = temp; }

Może Cię zainteresować

WskaźnikiPamięć

Etap 11: Arytmetyka wskaźników w C++

Zrozumienie, jak C++ operuje na adresach pamięci. Dowiedz się, dlaczego ptr++ to coś więcej niż dodanie jedynki.

3 min czytania
WskaźnikiZarządzanie pamięcią

Etap 10: Wskaźniki, operator adresu i dereferencji

Zrozumienie fundamentów adresowania pamięci w C++: jak działają wskaźniki i operatory niskopoziomowe.

3 min czytania
NapisyStyl C

Etap 6: Obsługa napisów w stylu C (char[])

Przewodnik po niskopoziomowym przetwarzaniu napisów jako tablic znaków zakończonych zerem, zgodnie z ograniczeniami kolokwium.

3 min czytania
Wróć do bloga
wleci.pl

Full-stack Developer

Tworzę nowoczesne aplikacje webowe z pasją do czystego kodu i dobrego designu.

[email protected]
Polska

Nawigacja

  • Start
  • O mnie
  • Projekty
  • Blog
  • Kontakt

Usługi

  • Aplikacje webowe
  • Strony internetowe
  • API & Backend
  • Konsultacje

Technologie

  • React / Next.js
  • TypeScript
  • Node.js
  • PostgreSQL

Social

© 2026 wleci.pl. Wszelkie prawa zastrzeżone.

Polityka prywatności•Regulamin

Zrobione z w Polsce