Witajcie,
Mam pytanie. Rozkminiam" temat przekazywania parametrów przez wartość i zmienną (inaczej referencję, wskaźnik dobrze rozumiem?). Skleiłem coś takiego:
#include <iostream>
void przekaz_przez_wartosc( int Liczba )
{
Liczba += 10;
std::cout << "Wartosc liczby przekazanej przez wartosc wynosi: " << Liczba << std::endl;
}
void przekaz_przez_zmienna( int &Liczba )
{
Liczba += 10;
std::cout << "Wartosc liczby przekazanej przez zmienna wynosi: " << Liczba << std::endl;
}
int main()
{
int Mojaliczba = 5;
std::cout << "Nasza liczba zadeklarowana na poczatku = " << Mojaliczba << std::endl;
przekaz_przez_wartosc( Mojaliczba );
std::cout << "Nasza liczba po wywolaniu funkcji przekaz_przez_wartosc= " << Mojaliczba << std::endl;
przekaz_przez_zmienna(Mojaliczba);
std::cout << "Nasza liczba po wywolaniu funkcji przekaz_przez_zmienna= " << Mojaliczba << std::endl;
return 0;
}
Teraz pytanie.
Przekazywanie przez wartość tworzy jakby "kopię" i na niej operuje i dlatego po wywołaniu funkcji i ponownym wywołaniu zmiennej "Mojaliczba" mam stara zmienna jaką zadeklarowałem (jest ona po wykonaniu funkcji usuwana)? Innymi słowy, jeśli tutaj chciałbym zachować wartość z funckji musiałbym ją przypisać do jakiejś zmienne powiedzmy coś takiego:
MojaLiczbaNumerDwa = przekaz_przez_wartosc( Mojaliczba );
Przy przekazywaniu przez zmienna odwołuje się do adresu w pamięci RAM do konkretnej zmienne (dzięki wskaźnikowi, refenecji) i wtedy zmieniam oryginalną zmienna dlatego po wywołaniu funkcji i ponownym wyświetleniu zmiennej "Mojaliczba" mam jej nową wartość z funkcji (nadpisała się jakby to ująć)?
Dzięki za rozwianie wątpliwości.