Wskaźniki ;/
Ostatnio zmodyfikowano 2015-03-29 14:01
Anim Temat założony przez niniejszego użytkownika |
Wskaźniki ;/ » 2015-03-29 13:23:09 PO co mi te wskaźniki ^^... A na poważnie. Miałem do zrobienia zadanie obliczające iloczyn skalarny dwóch wektorów, przy czym miało to zostać wykonane na wskaźnikach. Zadanie zrobiłem, ale nie ukrywam że użycie wskaźników przeze mnie było robione w sposób "spontaniczny", metodą prób i błędów i wskazówek kompilatora i różnych programów, które znalazłem w Internecie. I mimo, że program działa, to nadal nie wiem , dlaczego tak działają wskaźniki w tym programie. Jeżeli moglibyście mi odpowiedzieć na pytanie do poniższego kodu i wskaźników (ciężko być samoukiem ;p ) : #include <iostream> #include <cstdio> #include <conio.h>
void czytaj( int *, int *, int * ); void I_skalarny( int *, int *, int ); int rozmiar, X[ 10 ], Y[ 10 ];
int main( int argc, char ** argv )
{ printf( "Program do obliczania iloczynu skalarnego dwoch wektorow\n" ); czytaj( & rozmiar, X, Y ); I_skalarny( X, Y, rozmiar ); getch(); return 0; }
void czytaj( int * wektor_size, int * wsk_X, int * wsk_Y ) { printf( "Podaj prosze rozmiar wektorow, ale nie wiekszy niz 10: " ); std::cin >> * wektor_size; if( * wektor_size > 10 ) { printf( "Podales zbyt duzy rozmiar !! Maksymalnie 10 !!\n" ); czytaj( & rozmiar, X, Y ); } else { printf( "\n%d\n", sizeof( X ) ); printf( "\nPodaj elementy wektora.\n" ); printf( "Wektor pierwszy: \n" ); for( int i = 0; i < * wektor_size; i++ ) { printf( "\n[%d] = ", i ); std::cin >> *( wsk_X + i ); } printf( "\n%d\n", sizeof( X ) ); printf( "Wektor drugi: \n" ); for( int i = 0; i < * wektor_size; i++ ) { printf( "\n[%d] = ", i ); std::cin >> *( wsk_Y + i ); } } }
void I_skalarny( int * wsk_X, int * wsk_Y, int n ) { int suma = 0; for( int i = n - 1; i >= 0; i-- ) { suma += *( wsk_X + i ) * *( wsk_Y + i ); } printf( "Iloczyn skalarny wektorow X i Y wynosi: %d", suma ); }
1) Dlaczego przy wywołaniu funkcji czytaj() znak & stawiam tylko przy "rozmiar" , a przy X,Y nie muszę tego robić ? 2) Kiedy używać wskaźników, a kiedy referencji ? To chyba póki co te dwa pytania ;p |
|
Szadziu |
» 2015-03-29 13:34:08 1. Ponieważ nazwa tablicy jest wskaźnikiem na jej pierwszy element. |
|
Anim Temat założony przez niniejszego użytkownika |
» 2015-03-29 13:49:48 hm. To logiczne :) A Pan Grębosz tyle razy to podkreślał ^^ Dzięki :) |
|
pekfos |
» 2015-03-29 14:01:38 2) Kiedy używać wskaźników, a kiedy referencji ?
|
Wskaźników, gdy dopuszczasz przekazanie niczego. Referencji, gdy nie możesz oryginału przekazać przez wskaźnik. W pozostałych przypadkach zamiennie, z przewagą dla referencji, bo są wygodniejsze. |
|
« 1 » |