ďťż

Ładny brzuch

Witam,
2 pytanka odnosnie wskaznikow w C++:
1. czy stanie sie cos jezeli nie bede usuwal zmiennych tworzonych dynamicznie("delete zmienna")
2. Po co właściwie są wskaźniki, jakie dodatkowe możliwości wprowadzają, udogodnienia, czy są jakieś operacje, których nie da się zrobić przy pomocy wskaźników?
Wszakże np. C# praktycznie nie daje możliwości korzystania ze wskaźników...

Pozdrawiam i z góry dziękuję za odpowiedzi
Kufu
Użytkownik Kufu edytował ten post 27 maj 2008, 23:48


1. Tak, jeśli nie będziesz usuwał śmieci z pamięci skutecznie spowolnisz program, gdy będzie on już rozbudowany ;)
2. np. zamiast wysyłać całą tablicę, do funkcji wysyłasz tylko wskaźnik do niej, co przyspiesza pracę. Inny przykład: jeśli za pomocą funkcji chcesz zmienić wartość zmiennej przesłanej jako argument, to wiedz że nie uda się to bez wskaźnika/referencji, ponieważ gdy wysyłasz do funkcji całą zmienną to tworzona jest jej kopia i wszelakie działania wewnątrz funkcji nie mają wpływu na oryginalną zmienną. Co innego przez wskaźnik :)

ale referencja w C# istnieje prawda? Moglby ktos npisac jak sie ja stosuje w praktyce?

to c++ czy c# ?



c++ jesli chodzi o wskazniki (o tym byl temat)
C# jesli chodzi o referencje, bo wskaznikow nie ma.

c# przez referencje przekazywane są wszystkie obiekty klas oraz można jawnie coś przekazać przez referencję za pomocą słowa kluczowego " ref "

C# ma wskazniki, nie wiem co za herezje tu rozpuszczacie :P ale ogolnie w nowoczesnych jezykach programowania, zorientowanych na bezpieczenstwo pisania kodu, tworzy sie specjalizowane rodzaje wskaznikow. Referencja to fizycznie wskaznik, jednak znacznie bezpieczniejszy niz "prawdziwe" wskazniki. Np delegaty to rowniez wskazniki, tyle ze obiektowe. Iterator to rowniez wskaznik (przynajmniej jesli chodzi o role jaka spelnia). Mozna by wymieniac :) Ale dzieki specjalizacji i obiektowemu podejsciu te rodzaje wskaznikow moga byc uzywane w wygodniejszy sposob, i znacznie bezpieczniej. Wskazniki w c++ mozna wykorzystywac do wielu rzeczy, ale tak bezpieczne nie sa. Z drugiej strony - wskazniki w c++ daja calkowita wolnosc w dostepie i zarzadzaniu do danych w pamieci.

Co jest czasem ważne, na przykład gdy piszemy program do obsługi czegoś tam - nie procesor PCtowy - i to coś zawsze pod adresem 0x789AEF w pamięci zapisuje potrzebną nam daną. Więc wskaźnik ustawiamy tam i możemy odczytywać. Taki przykład :P


Co jest czasem ważne, na przykład gdy piszemy program do obsługi czegoś tam - nie procesor PCtowy - i to coś zawsze pod adresem 0x789AEF w pamięci zapisuje potrzebną nam daną. Więc wskaźnik ustawiamy tam i możemy odczytywać. Taki przykład :P
gorzej jak jakis program sobie ten obszar wczesniej zarezerwuje :P - ze wskaznikami trza uwazac

Tak, wskaźniki są szybkie, ale trzeba uważać ;]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •