[C++] Przypisywanie zwróconej wartości do zmiennej
Ostatnio zmodyfikowano 2025-06-04 00:22
domin568 Temat założony przez niniejszego użytkownika |
[C++] Przypisywanie zwróconej wartości do zmiennej » 2013-02-20 18:23:03 Witajcie, mam pewiem problem, otóż gdy mam taki kod #include <iostream> #include <string> using namespace std; int przechowywacz( int liczba ); int main() { int a = 345; cout << " Siema " << endl; cout << a << endl; przechowywacz( a ); cout << a << endl; return 0; } int przechowywacz( int liczba ) { liczba = 543; return liczba; } To myślałem że jeżeli przechowywacz przypisze liczba inną wartość i zwróci ją do a, a tak nie jest. To jak to w końcu jest? Co return zwraca? Po co jest zwracanie? |
|
Berux |
» 2013-02-20 18:28:04 Do takiego przypisania możesz użyć referencji lub wskaźnika. Jeżeli do tego nie doszedłeś zamień przechowywacz( a ); na a = przechowywacz( a ); - wtedy przypisujesz zwróconą wartość do tej zmiennej. |
|
domin568 Temat założony przez niniejszego użytkownika |
» 2013-02-20 18:33:09 I jeszcze takie pytanie , bo na forum jestem nowy ( Kod działa dzięki , doszedłem do wskaźników i nawet dalej tylko jakoś ciągle wskaźników nie moge ogarnąć ) jak umieścić kod w tych znacznikach ? , bo mój edytor nowej wiadomości jest jak by to powiedzieć "goły" i nie ma żadnych opcji ?? |
|
abdi |
» 2013-02-20 18:34:36 W momencie wywołania funkcji przechowywacz( a ) , a jest przekazywane jako argument, a funkcja operuje na jego kopii. Oznacza to że zmiana wartości zmiennej a wewnątrz funkcji, nie zmieni wartości poza funkcją. Funkcja zwraca tą wartości za pomocą return, i tak jak napisał @up można uzyskać pożądany efekt za pomocą a = przechowywacz( a ) Wtedy wartość zwracaną przypiszesz do a. |
|
termistor |
» 2025-06-04 00:22:18 Witaj domin568!Zwracam się do Ciebie z odpowiedzią na dwa pytania, które postawiłeś. 1. Umieszczanie kodu w znacznikachNa forum STC kod C++ umieszcza się w tzw. znacznikach kodu - czyli między a . W edytorze, nawet jeśli nie ma graficznych przycisków, możesz po prostu ręcznie wpisać te znaczniki w odpowiednich miejscach. Na przykład: #include <iostream> #include <string> using namespace std;
W praktyce wygląda to tak: - przed wklejeniem kodu wpisz - wklej swój kod - po zakończeniu kodu wpisz
Wtedy kod będzie poprawnie sformatowany i czytelny dla innych użytkowników forum. 2. Funkcje, return i przekazywanie parametrówTwój problem z funkcją przechowywacz wynika z podstawowej zasady C++: przekazywanie parametrów przez wartość tworzy ich kopię. int przechowywacz(int liczba) { liczba = 543; return liczba; }
W tym przypadku: - funkcja otrzymuje kopię zmiennej a- zmienia wartość kopii na 543 - zwraca tę wartość - oryginalna zmienna a pozostaje bez zmian Dlatego musisz przypisać wartość zwróconą przez funkcję do zmiennej a: a = przechowywacz(a);
Wtedy oryginalna zmienna a otrzyma nową wartość zwróconą przez funkcję. Jeśli chcesz, aby funkcja modyfikowała zmienną bezpośrednio, musisz użyć: 1. Referencji - np. int przechowywacz(int& liczba)2. Wskaźnika - np. int przechowywacz(int* liczba)Podejrzewam, że masz trudności z wskaznikami. Jeśli chcesz, mogę Ci wytłumaczyć, jak one działają - to bardzo przydatne narzędzie w C++. |
|
« 1 » |