___ tag123casting ___ Casting ist ein Prozess, bei dem ein Objekttyp explizit in einen anderen Typ konvertiert wird, wenn die Konvertierung zulässig ist. Dieser Prozess könnte zu einer Wertänderung führen. ___ tag123compoundoperator ___ In C-ähnlichen Sprachen kann "x = x + y" als "x + = y" codiert werden. Dies ist ein zusammengesetzter Operator. Es gibt einen solchen Operator für jeden arithmetischen, logischen und bitweisen Operator. ___ answer6844948 ___

Weil %code% äquivalent zu %code% ist, während %code% standardmäßig auf %code% operation ist, weisen Sie ein int zu, das char umgewandelt werden muss.

Aus der %code% ,

  

Ein zusammengesetzter Zuordnungsausdruck der Form E1 op = E2 ist äquivalent   zu E1 = (T) ((E1) op (E2)), wobei T der Typ von E1 ist, außer dass E1   wird nur einmal ausgewertet. Beachten Sie, dass die implizierte Umwandlung für Typ T sein kann   entweder eine Identitätskonvertierung (? .1.1) oder ein sich verengendes Primitiv   Umwandlung (? .1.3).

    
___ qstntxt ___

Frage:

%Vor%     
Was ist der Unterschied von x = x + 3 und x + = 3? Warum braucht man Typcast und der andere nicht? ___

8

Frage:

%Vor%     
Was ist der Unterschied von x = x + 3 und x + = 3? Warum braucht man Typcast und der andere nicht?
user845932 27.07.2011, 13:15
quelle

1 Antwort

29

Weil x += 3 äquivalent zu x = (char)(x+3) ist, während x + 3 standardmäßig auf int operation ist, weisen Sie ein int zu, das char umgewandelt werden muss.

Aus der JLS specification : 15.26.2 ,

  

Ein zusammengesetzter Zuordnungsausdruck der Form E1 op = E2 ist äquivalent   zu E1 = (T) ((E1) op (E2)), wobei T der Typ von E1 ist, außer dass E1   wird nur einmal ausgewertet. Beachten Sie, dass die implizierte Umwandlung für Typ T sein kann   entweder eine Identitätskonvertierung (? .1.1) oder ein sich verengendes Primitiv   Umwandlung (? .1.3).

    
Javascript is GOD 27.07.2011 13:17
quelle

Tags und Links