cześć!
mam takie zadanko: napisz funkcję w której zmienisz wartości dwóch zmiennych przekazanych do funkcji za pomocą a) wartości b)wskaźnika.
np. do funkcji wchodzi a=5, b=7, funkcja zwraca a=7, b=5. O ile z podpunktem b) nie mam większego problemu, o tyle nie wiem jak poradzić sobie z a)? czy można uzyskać zamianę wartości zmiennych za pomocą funkcji bez użycia referencji lub wskaźników? Z góry dzięki za pomoc;)
0
1
jezeli wartosc jest przekazana przez wartosc (czyli kopie) to nie ma mozliwosci zmienic wartosc takiej zmiennej. Jedynie co mozna zrobic to po prostu taka wartosc zwrocic i zrobic na zasadzie
int a = 5; int b = 7;
a = foo(a, &b)
0
Jeżeli otrzymalibyście takie dosłownie polecenie zadania (sam pdpkt a)) to napisalibyście jakiś kod czy raczej udzielilibyście odpowiedzi, że to se ne da? Bo może ja coś źle tutaj rozumiem.
0
napisalbym cos takiego (pisane z palca wiec moga byc drobne bledy, ale nie powinon byc)
Oczywiscie to jest koncept
#include <iostream>
#include <algorithm>
using namespace std;
int foo(int a, int *b)
{
swap(a, *b);
return a;
}
int bar(int a, int &b)
{
swap(a, b);
return a;
}
int main()
{
int a = 5;
int b = 7;
cout << "before changing";
cout << a << " " << b << "\n";
a = foo(a, &b);
cout << "after pointer changing";
cout << a << " " << b << "\n";
a = bar(a, b);
cout << "after reference changing";
cout << a << " " << b << "\n";
}
wytlumaczylbym ze to sa dwie jedyne mozliwosci zmiany zmiennej przekazywanej do innej funkcji.
0
okej, dzięki wielkie za pomoc w takim razie :)