[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 » |