Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rzutowanie problem ze zrozumieniem

Ostatnio zmodyfikowano 2016-08-19 18:03
Autor Wiadomość
okulista
Temat założony przez niniejszego użytkownika
Rzutowanie problem ze zrozumieniem
» 2016-08-19 12:13:50
Witam wszystkich. Od dłuższego czasu mam problem ze zrozumieniem pojęcia rzutowania. Mniej więcej orientuje się, że jest to konwersja z jednego typu danych do drugiego tak, aby kompilator w danym środowisku programistycznym nas się nie czepial(bynajmniej tak tłumaczył to nam nasz nauczyciel) jednak mam wrażenie, że on sam do końca tego nie rozumie, a mi jako początkującemu programiście przydałby się zastrzyk wiedzy.
 Zmienna typu int zajmuje 4 bajty w pamięci. A wskaźnik z tego co sprawdzałem też cztery. Są pomiędzy nimi znaczące różnice, ale to też nie zostało nam sprecyzowane. No i teraz rzutowanie.
int *wsk;
int pi;
wsk=(int*)pi;

I tutaj do was pare pytań:
1. Po co wgl robić te rzutowanie i kiedy to ma sens?
2. Inne przykłady rzutowania np zmiennej typu znakowego na jakiś inny typ danych.
3. Jakiś konkretny opis prototypu tej funkcji w jezyku C.
Z góry dzięki za jakikolwiek odzew.
P-150987
pekfos
» 2016-08-19 18:03:03
Mniej więcej orientuje się, że jest to konwersja z jednego typu danych do drugiego tak, aby kompilator w danym środowisku programistycznym nas się nie czepial(bynajmniej tak tłumaczył to nam nasz nauczyciel) jednak mam wrażenie, że on sam do końca tego nie rozumie
No to widać.

bynajmniej tak tłumaczył
To w końcu tłumaczył, czy nie tłumaczył?

Po co wgl robić te rzutowanie i kiedy to ma sens?
Kiedy musisz zmienić typ, bo chcesz mieć inny typ, bo kompilator nie może rozwiązać niejednoznaczności, bo kompilator ostrzega o np niejawnej konwersji zawężającej (o tym pewnie mówił ten nauczyciel), itp.
C/C++
std::cout << 97 << ' ' << static_cast < char >( 97 );
97 a

Jakiś konkretny opis prototypu tej funkcji w jezyku C.
Jakiej funkcji?
P-150992
« 1 »
  Strona 1 z 1