Si short
est automatiquement promu au rang de int
dans les opérations arithmétiques, alors pourquoi :
short thirty = 10 * 3;
Une cession légale au short
variable thirty
?
A son tour, ceci :
short ten = 10;
short three = 3;
short thirty = ten * three; // DOES NOT COMPILE AS EXPECTED
ainsi que ceci :
int ten = 10;
int three = 3;
short thirty = ten * three; // DOES NOT COMPILE AS EXPECTED
ne compile pas car l'affectation d'un int
à une valeur short
n'est pas autorisé sans casting comme prévu.
Y a-t-il quelque chose de spécial à propos des littéraux numériques ?