[c++] Zamiana wartości zmiennych przy użyciu wskaźników
Ostatnio zmodyfikowano 2013-04-14 16:02
Małolatt Temat założony przez niniejszego użytkownika |
[c++] Zamiana wartości zmiennych przy użyciu wskaźników » 2013-04-14 13:44:01 Witam Wszystkich użytkowników. mam pytanie odnośnie programowania obiektowego a mianowicie wskaźników.
mam za zadanie napisać program w którym będzie znajdował się taki element jak :
"przekazywanie argumentów i zwracanie wartości przez funkcje poprzez: wskaźnik"
Wymyśliłem sobie program który zamieni ze sobą 2 liczby po czym zwróci nam wynik z funkcji czy to jest dobrze napisane ?
#include <iostream> using namespace std; int * zamien( int * a, int * b, int * c ) { * c =* a; * a =* b; * b =* c; return a, b, c; } int main() { int a = 3; int b, c; cout << "Zmienna a wynosi: " << a << endl; cout << "Podaj wartosc zmiennej b: "; cin >> b; zamien( & a, & b, & c ); cout << "zmienna a po zamianie wynosi: " << a << endl; cout << "zmienna b po zamianie wynosi: " << b; return 0; }
Nie wiem czy dobrze zrozumiałem działanie wskaźników dlatego bardzo proszę was o pomoc . :]
|
|
pekfos |
» 2013-04-14 14:04:18 mam pytanie odnośnie programowania obiektowego a mianowicie wskaźników. |
? czy to jest dobrze napisane ?
|
Nie. |
|
Małolatt Temat założony przez niniejszego użytkownika |
c++ Wskaźniki » 2013-04-14 14:15:58 czy możecie mi powiedzieć gdzie robię błąd ? #include <iostream> using namespace std;
void * zamien( int * a, int * b ) { cout << "\n*** Zwracanie poprzez wskaznik ***"; int c; c =* a; * a =* b; * b = c; } int main() { int a = 3; int b; cout << "Zmienna a wynosi: " << a << endl; cout << "Podaj wartosc zmiennej b: "; cin >> b; zamien( & a, & b ); cout << "\nzmienna a po zamianie wynosi: " << a; cout << "\nzmienna b po zamianie wynosi: " << b << endl; return 0; } |
|
pekfos |
» 2013-04-14 14:43:36 czy możecie mi powiedzieć gdzie robię błąd ? |
A możesz powiedzieć, jaki błąd? |
|
Małolatt Temat założony przez niniejszego użytkownika |
c++ Wskaźniki » 2013-04-14 15:06:10 błąd w sensie takim że tutaj mam tylko przekazywanie wartości przez wskaźnik a chciałbym aby też było zwracanie wartości i nie wiem czy w ogóle da się to zrobić na tym przykładzie |
|
pekfos |
» 2013-04-14 15:12:14 To zwróć coś. W czym problem? |
|
unimator |
» 2013-04-14 16:02:18 Na przykładzie najłatwiej zrozumieć. Teraz analogicznie przerób swoją funkcję dla 3 zmiennych. void swapper( int * p_a, int * p_b ) { int temp = * p_a; * p_a = * p_b; * p_b = temp; return; }
void swapper( int & a, int & b ) { int temp = a; a = b; b = temp; return; }
int main() { int uA = 1, uB = 111222; printf( "Przed zmiana: uA = %i, uB = %i\n", uA, uB ); swapper( & uA, & uB ); printf( "Po zamianie: uA = %i, uB = %i\n", uA, uB ); swapper( uA, uB ); printf( "Po zamianie (wersja z referencja): uA = %i, uB = %i\n", uA, uB ); getchar(); return 0; }
|
|
« 1 » |