Kurs maturalny z języka angielskiego!
kurs-maturalny-jezyk-angielski

PROGRAMOWANIE I ALGORYTMY

Zajęcia maturalne z informatyki
Olimpiada Informatyczna Juniorów
    Prowadzący: Marcin Kasprowicz
  • właściciel serwisu algorytm.edu.pl
  • wrzesień 2024 — start zajęć
  • czytaj więcej

Argumenty funkcji


powrót

Lista argumentów funkcji w C++

Argumenty funkcji to dane, które są przekazywane do funkcji. Na ich podstawie funkcja realizuje swoje zadanie.

Przykłady funkcji i jej listy argumentów

Np. dla funkcji sumującej dwie liczby rzeczywiste argumentami będą te dwie liczby:

double funkcja(double argument1, double argument2)

Definiując funkcję, musimy zdefiniować listę argumentów, deklarując ich typy. Gdy definiujemy tylko prototyp funkcji, nie ma potrzeby nadawania nazw argumentów:

double funkcja(double, double);

Pamiętaj, że kolejność argumentów ma znaczenie, tzn. jeśli pierwszym argumentem jest liczba całkowita, a drugim znak, to w takiej kolejności musisz podać dane przekazywane dla funkcji:

#include <iostream>
using namespace std;

void funkcja(double liczba, char znak)
{
	cout<<liczba<<" "<<znak;
}

int main()
{
	double l = 3.14;
	char zn = 'a';

	cout<<"Podałeś następujące wartości argumentów: ";
	
//wywołanie funkcji przekazując dwa argumenty: liczbę "l" i znak "zn"
	funkcja(l, zn); 

	return 0;
}

Ważne!

W momencie przekazywania zmiennych jako argumenty, funkcja tworzy w pamięci ich kopie. Oznacza to, że wszelkie zmiany na wartościach zmiennych nie będą widoczne w miejscu, gdzie zostały one przekazane do funkcji.

Dla lepszego zobrazowania problemu przeanalizujmy przykład zamiany wartości dwóch zmiennych.

#include <iostream>
using namespace std;

void zamiana(int a, int b)
{
	int temp = a;
	a = b;
	b = temp;
}

int main()
{
	int a, b; //zauważ, że nazwy zmiennych mogą być (ale nie muszą) 
				//takie same jak nazwy argumentów funkcji

	cout<<"Podaj dwie liczby: ";
	cin>>a>>b;
	cout<<"Przed zamianą: a = "<<a<<", b = "<<b<<endl;

	//wywołanie funkcji
	zamiana(a,b);

	cout<<"Po zamianie: a = "<<a<<", b = "<<b<<endl;

	//oczywiście w pierwszym i drugim przypadku zostanie 
	//wyświetlone dokładnie to samo czyli

	//np., gdy podamy a = 9, b = 0
	//to ujżymy komunikat
	//Przed zamianą: a = 9, b = 0
	//Po zamianie: a = 9, b = 0

	return 0;
}

Żeby ominąć ten problem, należy zapoznać się z artykułem "Funkcje a referencje".