Rzutowanie problem ze zrozumieniem
Ostatnio zmodyfikowano 2016-08-19 18:03
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. |
|
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ć. 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. std::cout << 97 << ' ' << static_cast < char >( 97 );
97 a
Jakiś konkretny opis prototypu tej funkcji w jezyku C. |
Jakiej funkcji? |
|
« 1 » |