Maison > Questions et réponses > le corps du texte
比如byte b = 1; char c = 1;
,如果整数类型默认是int类型的话,那么byte b = 1;应该需要强转换才对,因为int是高精度的,但这里明显不报错,这是为什们呢?
迷茫2017-04-18 10:53:57
Tout d’abord, le type entier est par défaut int. Cela ne fait aucun doute.
Deuxièmement, dans la plage de types autorisée, ici l'octet : -128~127
Et l'entier int 1 est dans cette plage, le compilateur effectuera automatiquement une conversion vers le bas de la constante.
Si la constante dépasse cette plage, le compilateur signalera directement une erreur.
天蓬老师2017-04-18 10:53:57
Byte, short, char et boolean sont tous traités comme des entiers au niveau inférieur
天蓬老师2017-04-18 10:53:57
Faux, deux entiers sont ajoutés ensemble. S'il est inférieur ou égal à int, la valeur par défaut est int. Si l'un d'eux est long, la valeur par défaut est longue ;
Vous essayez de déclarer deux variables d'octet, puis de les ajouter et de les affecter à une autre variable d'octet. Le compilateur affichera une erreur et une conversion de type forcée est requise
.