Gleb411
29 уровень

Сложение char

Статья из группы Архив info.javarush
участников
public static void main(String[] args){ System.out.println('\n'+'\r'); // WTF??? } Может кто-нибудь объяснить, почему в данном случае на выходе будет число(23)? Заранее спасибо.
Комментарии (4)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
blacky
Уровень 23
18 ноября 2015, 00:52
blacky
Уровень 23
18 ноября 2015, 01:14
5.1.4. Widening and Narrowing Primitive Conversion

The following conversion combines both widening and narrowing primitive conversions:
* byte to char
First, the byte is converted to an int via widening primitive conversion (§5.1.2), and then the resulting int is converted to a char by narrowing primitive conversion (§5.1.3).
Lim
Уровень 41
17 ноября 2015, 22:16
Потому что char — в т.ч. целочисленный тип
Сложение 2-х char автоматически расширяется до int в данном случае, чтобы избежать переполнения
'\n' == 10, '\r' == 13
Gleb411
Уровень 29
18 ноября 2015, 18:04
Спасибо!