19. Sichere Zuweisungen
19. Sichere ZuweisungenNicht alle Basistypen können wegen ihrer unteschiedlichen Wertebereiche sicher aufeinander zugewiesen werden. Markieren alle sicheren Zuweisungen mit einem Kreuz in der dritten Spalte. Tragen Sie für die unsicheren Zuweisungen eine Zuweisung mit einer Typkonversion(Cast) so ein, so das der Übersetzer die unsichere Zeile ohne Fehler übersetzt.
Zuweisung | Erlaubt und sicher | Nicht erlaubt und unsicher (Zuweisung mit Typkonversion) |
|
---|---|---|---|
Deklaration der Variablen. Belegung sei unbekannt und nicht die Standardinitialisierung |
byte by; short sh; char ch; int in; long lo; ... |
Nichts in diese Zelle eintragen | Nichts in diese Zelle eintragen |
Beispiel a.) |
by = lo; |
by = (byte) lo; | |
Beispiel b.) |
by = by; |
X | |
1. |
lo = lo; |
||
2. |
lo = in; |
||
3. |
lo = sh; |
||
4. |
lo = by; |
||
5. |
sh = lo; |
||
6. |
sh = in; |
||
7. |
sh = ch; |
||
8. |
sh = by; |
||
9. |
in = lo; |
||
10. |
in = in; |
||
11. |
in = sh; |
||
12. |
in = by; |
Niveau | 1 |
Schwierigkeitsgrad | mittel |
Zeit |
6 Minuten |
Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)
Antwort zu Frage 18: Typkonversion, Casten
- … im günstigsten Fall?
- Nichts. Der zugewiesene Wert ist der korrekte Wert
- … im ungünstigen Fall?
- Der zugewiesene Wert ist kleiner, da Bits die ausserhalb des Wertebereichs des kleineren Typs liegen ohne Fehlermeldung abgeschnitten werden.
Antwort zu Frage 19: Sichere Zuweisungen
Zuweisung | Erlaubt und sicher | Nicht erlaubt und unsicher (Zuweisung mit Typkonversion) |
|
---|---|---|---|
Deklaration der Variablen. Belegung sei unbekannt und nicht die Standardinitialisierung |
byte by; short sh; char ch; int in; long lo; ... |
Nichts in diese Zelle eintragen | Nichts in diese Zelle eintragen |
Beispiel a.) |
by = lo; |
by = (byte) lo; |
|
Beispiel b.) |
by = by; |
X | |
1. |
lo = lo; |
X | |
2. |
lo = in; |
X | |
3. |
lo = sh; |
X | |
4. |
lo = by; |
X | |
5. |
sh = lo; |
sh=(short)lo; |
|
6. |
sh = in; |
sh=(short)in; |
|
7. |
sh = ch; |
sh=(short)ch; |
|
8. |
sh = by; |
X | |
9. |
in = lo; |
in=(int)lo; |
|
10. |
in = in; |
X | |
11. |
in = sh; |
X | |
12. |
in = by; |
X |
- 3966 views