比如byte b = 1; char c = 1;
,如果整数类型默认是int类型的话,那么byte b = 1;应该需要强转换才对,因为int是高精度的,但这里明显不报错,这是为什们呢?
迷茫2017-04-18 10:53:57
우선 정수형의 기본값은 int입니다. 이것에 대해서는 의심의 여지가 없습니다.
두 번째로, 허용되는 유형 범위 내에서 여기 바이트: -128~127
그리고 정수 int 1이 이 범위에 있으면 컴파일러는 자동으로 상수의 하향 변환을 수행합니다.
상수가 이 범위를 초과하면 컴파일러가 직접 오류를 보고합니다.
天蓬老师2017-04-18 10:53:57
틀렸습니다. 두 개의 정수가 int보다 작거나 같으면 기본값은 int입니다. 그 중 하나가 long이면 기본값은 long입니다.
두 개의 바이트 변수를 선언한 다음 이를 추가하고 다른 바이트 변수에 할당하려고 하면 컴파일러에서 오류 메시지가 표시되며 강제로 유형 변환이 필요합니다.