Приведение типов в C++
Приведение типов — это явление, при котором тип данных преобразуется из одного типа в другой, чтобы упростить вычисление исходного кода. Приведение типов поддерживается многими языками, включая C ++. Это преобразование типа данных полезно в том случае, когда пользователь предоставил значение в одном типе данных, но, согласно требованиям, вам нужен второй тип данных. Итак, вы пытаетесь выполнить приведение типов в программах. В этом руководстве с помощью примеров мы объясним два основных типа преобразования типов.
Мы собираемся объяснить эту концепцию в операционной системе Linux, поэтому вам необходимо установить Ubuntu в работающей форме в вашей системе. Итак, вы должны установить Virtual Box и после загрузки и установки настроить его. Теперь добавьте к нему файл Ubuntu. Вы можете получить доступ к официальному сайту Ubuntu и загрузить файл в соответствии с требованиями вашей системы и операционной системы. Это займет часы, после установки настройте его на виртуальной машине. В процессе настройки убедитесь, что вы создали пользователя, потому что это важно для любых операций на терминале Ubuntu. Более того, Ubuntu требует аутентификации пользователя перед любой установкой.
Мы использовали версию Ubuntu 20.04; вы можете использовать последнюю версию. Для реализации вам потребуется текстовый редактор и доступ к терминалу Linux, потому что мы сможем видеть вывод исходных кодов на терминале через запрос. Пользователь должен иметь базовые знания языка программирования C ++.
Содержание
- Типы приведения типов
- Неявное преобразование типов
- Явное преобразование
- Примеры приведения типов
- Пример 1
- Пример 2
- Пример 3
- Пример 4
- Заключение
Типы приведения типов
Оба типа объяснены в этом руководстве вместе с примерами для более ясного понимания.
Неявное преобразование типов
Это называется автоматическим преобразованием, потому что оно выполняется компилятором автоматически без какой-либо внешней силы со стороны пользователя. Этот тип приведения типов используется в основном в программе, в которой в выражении присутствуют два или более типов данных. Итак, мы используем приведение типов, чтобы наши данные не были потеряны. Типы данных всех переменных обновляются до типа данных той переменной, которая содержит самый большой тип данных среди них. Однако в случае неявных преобразований есть вероятность потери данных, теряются разные рабочие признаки. Переполнение данных также может произойти при преобразовании длинного числа в число с плавающей запятой.
Явное преобразование
Главный момент, который отличает этот тип преобразования от неявного преобразования, заключается в том, что это преобразование, определяемое пользователем. Вовлечение пользователя осуществляется таким образом, что пользователь может привести вывод к типу, чтобы преобразовать его в определенный тип данных. Это делается двумя способами.
Преобразование путем присвоения: это достигается путем явного определения требуемого типа данных в круглых скобках. Синтаксис представлен как (тип) выражение. «Тип» относится к типу данных, в который преобразуется результирующее значение.
Преобразование с помощью оператора приведения: это унарный оператор, который указывает, что один тип данных может быть преобразован в другой тип данных. Этот тип делится на 4 части.
- Статическое приведение: в этом типе указатель базового класса приводится к производному классу.
- Dynamic Cast: этот тип используется в коде во время выполнения.
- Constant Cast: этот тип называется переопределяющей константой.
- Переинтерпретировать приведение: указатель одного типа преобразуется в другой тип.
Примеры приведения типов
Теперь мы будем использовать здесь несколько примеров, чтобы объяснить концепцию преобразования типов.
Пример 1
Здесь мы передали число в код C ++, и это число преобразовано в символ ASCII, эквивалентный самому себе. Тип данных, которые нам нужно преобразовать, записывается в круглых скобках вместе с числом, которое необходимо преобразовать. Мы использовали число «75». Во-первых, библиотека используется для редактирования как входной и выходной поток. В основной программе мы использовали здесь символы типа данных.
Теперь напишите вышеупомянутый код в файл и сохраните его с расширением C ++ / C. Выполнение этой программы выполняется на терминале Ubuntu. Это делается компилятором C ++, то есть G ++.
$ g++ -o typecast typecast.c
$ ./typecast
Полученное значение можно увидеть на экране терминала. Число «75» превращается в букву «K».
Пример 2
Это пример неявного преобразования. В этом примере рассматривается использование арифметических операций в программе на языке C ++. Две переменные, одна целочисленная, а другая — символьная, используются для хранения значений в соответствии с их типом данных. Значение, сохраненное в символьном значении, преобразуется в значение ASCII. Значение обеих переменных складывается и затем сохраняется в переменной x. Затем тип данных float используется для новой переменной, чтобы добавить новое значение x с постоянным значением.
В конце отображаются все три значения переменных. X содержит его измененное значение. И значение y уже определено в начале, а значение Z вычисляется посредством арифметической операции. Теперь вы можете увидеть результирующее значение в терминале Ubuntu.
Пример 3
Это пример явного преобразования. Вначале мы используем двойное число, а затем преобразуем его в целочисленный формат. Маленькие скобки содержат тип данных, в который нужно преобразовать значение.
В конце отображается сумма всего процесса. При выполнении кода через компилятор вы можете видеть, что получается целочисленное значение, хотя мы использовали значение типа double в качестве входных данных в коде. В результате некоторых операций значение равно 12. Это достигается путем первого преобразования 7,7 в 7. Для этой цели значение после точки удаляется. А затем прибавьте 5 к 7, чтобы получилось 12.
Пример 4
Это также пример явного преобразования. В этой программе значение изменяется дважды. Мы использовали двойное значение. Для каждого преобразования используется постоянное число. В первый раз к значению a добавляется константа 10, а во втором — 120.
int total = (int)a =10;
float total1 =(float)a +120.0;
Теперь скомпилируйте код, а затем выполните его в терминале. Желаемый ответ получен, его можно увидеть в терминале Ubuntu.
$ g++ -o typecast typecast.c
$ ./typecast
Заключение
Феномен приведения типов объясняется на языке программирования C ++. Эти программы реализуются путем создания среды Linux. Мы использовали текстовый редактор и терминал для разработки кодов. Все четыре примера добавлены для улучшения текущих знаний пользователей о C ++. Приведение типов, как описано ранее, используется для изменения одного типа данных на другой в исходных кодах в соответствии с заданным требованием. Мы стремимся объяснить базовые знания о приведении типов на языке C ++. Мы надеемся, что эта статья послужит полезным усилием для пользователя в получении знаний о приведении типов.
Преобразование типов в Си
Определение 1
Преобразование типов в Си — это преобразование любого типа данных в любой другой тип. При таком преобразовании не имеет значения безопасность этой процедуры.
Введение
Если требуется поменять тип данных на иной, например, больший по размеру, то возможно использовать для этой цели неявный метод преобразования. Некоторые неопытные программисты иногда применяют такой вариант: float x = 11 / 3;. Но поскольку и одиннадцать и три, это целочисленные величины, то никакие преобразования типов чисел выполняться не будет. Будет выполнена операция деления без остатка одиннадцать на три, что даст в итоге три. Тройка пройдёт преобразование в вид 3.0 и это значение получит переменная х. То есть, если применяются числовые символы (например, одиннадцать или три), то подмена первого или пары целых чисел на значения с плавающей точкой (11.0 или 3.0) ведёт к преобразованию их в значении вида с плавающей точкой и выполнению деления типа с плавающей точкой. Оптимально в таком случае использовать переменные.
К примеру, так:
1 int i1 = 11;
2 int i2 = 3;
3 float x = i1 / i2;
Переменная х примет в итоге значение три. Чтобы программа компиляции понимала, что программисту надо заменить деление целых чисел без остатка на деление типа с плавающей точкой, следует применять какой-либо оператор, преобразующий типы данных в явной форме.
Явное преобразование типов
В программном языке С++ имеется следующие типы операторов casts, выполняющих в явной форме изменение типов данных:
C-stylet;
static;
const;
C-style cast.
В программах на языке С изменение в явной форме типа данных осуществляется посредством специального обозначения (). Внутрь скобок заносится тип, в который необходимо преобразовать данные. Такой способ перемены типа данных носит название C-style cast. Применять можно, например, так:
1 int i1 = 11;
2 int i2 = 3;
3 float x = (float)i1 / i2;
В этом примере содержимое внутри скобок сообщает программе компиляции, что надо выполнить изменение переменной i1 (типа int) в тип float. Так как i1 теперь имеет тип float, то i2 тоже будет автоматом преобразовано в такой же тип, и операция деления уже будет выполнена для типа данных с плавающей точкой. Следует заметить, не стоит применять данный оператор для изменения данных типов const, так как это может привести к ошибкам.
Оператор static_cast
Этот оператор может применяться для конвертирования переменной типа char в тип int, при этом выводится целое число, а не символ:
Рисунок 1. Код. Автор24 — интернет-биржа студенческих работ
Этот оператор оптимально применять для преобразования фундаментальных типов(один в другой):
1 int i1 = 11;
2 int i2 = 3;
3 float x = static_cast (i1) / i2;
Главным достоинством static_cast может считаться наличие проверки программой компиляции на ошибки, что предотвращает появление непредсказуемых проблем. Кроме того, оператор static_cast обладает меньшим влиянием, чем оператор C-style cast. Это исключает возможность случайного изменения типа const и другие бессмысленные операции.
Использование операторов явного преобразования в неявном преобразовании
При использовании потенциально опасных неявных преобразований типов данных, программа компиляции может выдавать предупреждения. К примеру, такие:
1 int i = 49;
2 char ch = i; // неявное преобразование
Преобразование переменной типа int (4 байта) в тип char (1 байт) несёт потенциальную опасность, и компилятор об этом предупредит. Чтобы компилятор понял, что программист понимает потенциальную опасность операции, но её надо всё равно выполнить, следует применять оператор static_cast:
Рисунок 2. Код. Автор24 — интернет-биржа студенческих работ
В примере ниже, программа компиляции может выдать сообщение, что преобразование из double в int способно спровоцировать потерю данных:
1 int i = 90;
2 i = i / 3.6;
Для сообщения компилятору о сознательном намерении выполнить операцию, следует записать такие команды:
Рисунок 3. Код. Автор24 — интернет-биржа студенческих работ
Не следует использовать без крайней необходимости конвертацию типов данных. Почти всегда при выполнении этих преобразований существует вероятность появления различных проблем. Но если это всё-таки необходимо сделать, лучше применять static_cast вместо C-style cast.
Конвертирование типов в арифметических операциях
При использовании в арифметических операциях разных типы значений, программа компиляции будет пытаться в неявной форме преобразовать их в один тип. А так же, если программа задаёт переменной конкретное значение, оно всегда должно быть приведено к типу, присущему этой переменной. К примеру, так:
1 char c = 6;
2 int d = c;
Переменная d, представляющая тип int, получает значение типа char. По этой причине компилятор приведёт её значение от типа char к типу int. Как отмечалось выше, такие преобразования могут нести потенциальную опасность, так как различные типы обладают различным внутренним представлением. И без потерь данных изменение типа представления не всегда можно осуществить. Программа компиляции при арифметических операциях делает следующие преобразования:
- Когда одна из переменных обладает типом long double, то и вторая переменная должна быть приведена к этому типу.
- Когда пункт один не исполнен и одна из переменных обладает типом double, то вторая переменная так же должна быть приведена к типу double.
- Если не удалось выполнить пункт выше, и какая-либо переменная обладает типом long, то вторая переменная так же преобразуется в тип long.
- Если снова не произошло выполнение предыдущего пункта и одна из переменных является типа unsigned, то другая переменная так же преобразуется в тип unsigned.
- Когда не выполнен предыдущий пункт, обе переменные преобразуются к типу int.
Приведём пример:
1 int a = 10;
2 double b = 4;
3 double c = a + b; // 14.000000
В формуле a + b переменная b имеет тип double, по этой причине переменная a так же в автомате преобразуется к типу double. Итог арифметической операции сложения также станет типа double.
Статья о явном+типе+преобразовании от The Free Dictionary
Explicit+тип+преобразование | Статья о явном+типовом+преобразовании от The Free DictionaryЯвный+тип+преобразование | Статья о явном+типовом+преобразовании от The Free Dictionary
Слово, не найденное в Словаре и Энциклопедии.
Пожалуйста, попробуйте слова по отдельности:
эксплицитно тип преобразование
Некоторые статьи, соответствующие вашему запросу:
Не можете найти то, что ищете? Попробуйте выполнить поиск по сайту Google или помогите нам улучшить его, отправив свое определение.Полный браузер ?
- ▲
- Явная память
- Явная память
- Явная память
- Явная память
- Явная память
- Явная модель после
- Явная многопоточность
- Явная многоадресная передача
- Явная многоадресная рассылка
- Явный перевод сетевого вызова
- Явное обыкновенное дифференциальное уравнение
- Явный параллелизм
- Явный параллелизм
- явное программирование
- Явная ставка
- Явная индикация скорости для предотвращения перегрузки
- Явный ценовой маркетинг
- явная ссылка
- Уведомление о явном отключении маршрута
- Явный объект маршрута
- Явная маршрутизация
- Явное нарушение симметрии
- Явное нарушение симметрии
- Явный налог
- Явные налоги
- Уведомление о явной транспортной ошибке
- Явное преобразование типов
- явный URL-адрес
- Явная адаптация окна
- Явный протокол управления перегрузкой беспроводной сети
- явно+тип+преобразование
- явно
- явно
- явно
- Явно отформатированная логическая запись
- Явно параллельные вычисления команд
- Явно параллельные вычисления команд
- Явно запрошенный единственный источник
- Путь с явной маршрутизацией по метке
- явность
- явность
- явность
- явные
- явные
- явные
- Взрыв
- Взрыв ’72
- взорвать
- взорвать
- взорвать
- взорвать
- взорвать
- Взрыв (альбом)
- Взрыв (песня)
- взорвать бомбу
- взорвать бомбу
- взорваться тебе в лицо
- взорвать
- взорвать (чем-то)
- взорвать его
- взорвать что-то
- ▼
Сайт: Следовать:
Делиться:
Открыть / Закрыть
Приведение типов в C: Учебное пособие по C на хинди #18
Зачем изучать язык программирования C? : Учебное пособие по C на хинди #1
Что такое кодирование и язык программирования C? : Учебник C на хинди #2
Установка и настройка кода VS с помощью компилятора C: Учебное пособие по C на хинди #3
Базовая структура программы на C на хинди: Учебное пособие по C на хинди #4
Основной синтаксис программы на C: Учебное пособие по C на хинди #5
Переменные и типы данных в C: Учебное пособие по C на хинди #6
Операторы в C: Учебное пособие по C на хинди #7
Программирование на C. Упражнение 1. Таблицы умножения: Учебное пособие по C на хинди #8
Спецификаторы формата C и escape-последовательности с Примеры: Учебник C на хинди #9
Операторы управления If Else в C: Учебное пособие по C на хинди #10
Операторы Switch Case Control на C: Учебное пособие по C на хинди #11
Циклы в C: Учебное пособие по C на хинди #12
Цикл Do While в C: Учебник C на хинди #13
While Loop In C: Учебник C на хинди #14
For Loop In C: Учебник C на хинди #15
Операторы Break and Continue на языке C: Учебник C на хинди #16
Goto Заявление на языке C: Учебное пособие по C на хинди #17
Приведение типов на языке C: Учебное пособие по C на хинди #18
Функции на языке C: Учебник по C на хинди #19
Упражнение на C 1: Решение таблицы умножения + Shoutouts: Учебник на языке C на хинди #20
Рекурсивные функции: рекурсия На языке C: Учебник на языке C на хинди #21
Упражнение на C 2 : Единицы и преобразования: Учебник по C на хинди #22
Массивы на C: Учебник по C на хинди #23
Упражнение 2: Решение + Shoutouts: Учебник по C на хинди #24
Упражнение 3 Рекурсии: Учебник по C на хинди # 25
Указатели на C: Учебное пособие по C на хинди #26
Массивы и арифметика указателей на языке C: Учебное пособие по C на хинди #27
Упражнение 3 по рекурсиям: решение + Shoutouts: Учебное пособие по C на хинди #28
Всегда ли рекурсия хороша? : Учебное пособие по C на хинди #29
Упражнение 4. Печать шаблонов звезд на языке C: Учебное пособие по C на хинди #30
Вызов по значению и вызов по ссылке на языке C: Учебное пособие по C на хинди #31
Передача массивов в качестве функций Аргументы: Учебное пособие по C на хинди #32
Узор со звездой на языке C — Упражнение 4 Решение: Учебное пособие по C на хинди #33
Строки в C: Учебное пособие по C на хинди #34
Строковые функции в C и библиотека string.h: Учебное пособие по C на хинди #35
Обращение массива на C. Упражнение 5: Учебное пособие по C на хинди #36
Структуры на C: Учебное пособие по C на хинди #37
Typedef На языке C: Учебное пособие по C на хинди #38
Unions In C: Учебное пособие по C на хинди #39
C Language Array Reversal Упражнение 5: Решение: Учебное пособие по C на хинди #40
Анализатор HTML языка C. Упражнение 6: Учебное пособие по языку C на хинди #41
Статические переменные в C: Учебное пособие по C на хинди #42
Учебное пособие по C Упражнение 6: Решения и крики: Учебное пособие по C на хинди #43
C Language Менеджер туристического агентства Упражнение 7: Учебное пособие по C на хинди #44
Память Компоновка программ на C — Динамическое выделение памяти: Учебное пособие по C на хинди #45
C Language Менеджер туристического агентства Упражнение 7 Решение: Учебное пособие по C на хинди #46
Динамическое выделение памяти Malloc Calloc Realloc & Free(): Учебное пособие по C на хинди # 47
Язык C Employee Manager Упражнение 8: Учебное пособие по C на хинди #48
Классы хранения на C Auto, Extern Static и Register Storage Классы: Учебное пособие по C на хинди #49
Менеджер сотрудников на C — Упражнение 8 Решение: Учебное пособие по C на Hindi #50
Coding Rock, Paper, Scissors In C Упражнение 9: Учебное пособие по C на хинди #51
Пустой указатель на языке C: Учебное пособие по C на хинди #52
Указатель NULL на языке C: Учебное пособие по C на хинди #53
Висячий указатель на языке C: Учебное пособие по C на хинди #54
Дикий указатель на языке C: Учебное пособие по C на хинди #55
Камень, бумага и ножницы на языке C — Упражнение 9 Решение: Учебное пособие по C на хинди №56
Умножение матриц на языке C — Упражнение 10: Учебное пособие по C на хинди #57
Введение и работа с препроцессором C: Учебное пособие по C на хинди #58
#define and #include Директивы препроцессора: Учебное пособие по C на хинди #59
Предопределенные макросы и другие директивы препроцессора: Учебное пособие по C на хинди # 60
Умножение матриц на C — Упражнение 10 Решение: Учебное пособие по C на хинди #61
Файловый ввод-вывод на C: Учебное пособие по C на хинди №62
Проверка палиндрома на языке C — Упражнение 11: Учебное пособие по C на хинди #63
Функции для файлового ввода-вывода на языке C: Учебное пособие по C на хинди #64
Числовая программа на языке C: Упражнение 11 Решение: Учебное пособие по C на хинди #65
Автоматический генератор чеков на языке C — Упражнение 12: Учебное пособие по C на языке C Hindi #66
Режимы файлов, fgets, fputs, fgetc, fputc и многое другое по обработке файлов C: C Tutorial In Hindi #67
Аргументы командной строки на C: Учебное пособие по C на хинди #68
Автоматический генератор счетов на C (решение) — Упражнение 12: Учебное пособие по C на хинди #69
Калькулятор командной строки на C — Упражнение 13: Учебное пособие по C на хинди # 70
[Решено] Калькулятор командной строки на C Пример 13: Учебное пособие по C на хинди #71
Указатели функций на C: Учебное пособие по C на хинди #72
Функции обратного вызова с использованием указателей функций на C: Учебное пособие по C на хинди #73
Упражнение 13.