Другие языки программирования и технологии

Помогите с ответами пишет как работает но не для чего

28.Что такое явное преобразование типов.
29.Что такое неявное преобразование типов.
30.Что такое сужающее преобразование типов.
31.Что такое расширяющее преобразование типов.
Попробую объяснить на примерах 28, 29.
28)Предположим есть строковая переменная с символом "2". Вы пытаетесь прибавить еще одну строковую переменную и пусть это будет символ "3"(уточню что строковая переменная это массив символов, но один символ тоже является массивом из одного элемента). Большинство языков программирования предполагают, что если для строк используют знак плюс, то нужно выполнить конкатенацию строк (к первой строке в конце дописать вторую строку и результат положить в указанную переменную). Получим результат не 5, как возможно предполагалось, а "23". Именно для таких случаев, и не только, нужно явное преобразование типов (в данном случае из строчного в числовой тип).

29) Опишу одновременно вариант, который происходит, и на котором новички ловят ошибки. Предположим есть две целочисленные переменные int a = 7; int b = 3; И одна переменная с плавающей запятой (точкой) double result; При выполнении вот таких действий в си++ result = a/b; получим результат. При этом result будет равно ровно 2.0. Почему так происходит!? Потому что вначале выполняется целочисленная арифметика 7/2 при которой результат будет равен 2 и 1 в остатке. А потом это число неявно преобразуется в число с плавающей точкой. Вот это и есть неявное преобразование. Компилятор сам старается преобразовать переменные из одного типа в другой если есть такая возможность. Для того что бы получить правильный результат то нужно явно преобразовать целочисленные переменные в переменные с плавающей запятой:
result = double(a)/double(b);
Александр Скворцов
Александр Скворцов
15 398
Лучший ответ
Нахер тебе писать как работать.