Приведение типов. Часть 1
Часть раздела Fundamentals путешествия по C на Coddy — урок 13 из 63.
Приведение типов в C позволяет преобразовывать значение из одного типа данных в другой. Это полезно, когда вам нужно выполнять операции между различными типами данных.
Существует два основных типа приведения типов:
- Неявное приведение (автоматическое)
- Явное приведение (ручное)
Давайте начнем с неявного приведения типов:
Неявное приведение типов происходит автоматически при преобразовании из меньшего типа данных в больший:
int num = 10;
double decimal_num;
// Неявное приведение из int в double
decimal_num = num;После выполнения приведенного выше кода decimal_num будет иметь значение 10.0
Это работает, потому что double может хранить все возможные значения int без потери данных. Преобразование безопасно, поэтому C выполняет его автоматически.
Распространенные пути неявного приведения типов:
- char → int → long → float → double
Теперь давайте рассмотрим явное приведение типов:
Явное приведение типов выполняется вручную путем указания целевого типа данных в скобках перед значением, которое вы хотите преобразовать. Это необходимо при преобразовании из большего типа данных в меньший, когда может произойти потеря данных:
double decimal_num = 5.65;
int num;
// Явное приведение из double в int
num = (int)decimal_num;После выполнения вышеуказанного кода num будет иметь значение 5
Обратите внимание, что дробная часть отсекается (не округляется) при приведении из double в int. Синтаксис явного приведения типов следующий:
(target_type) valueПоскольку такое преобразование может привести к потере данных, язык C требует, чтобы вы выполняли его явно — это сообщает компилятору, что вы осознаете потенциальную потерю данных.
Задание
ЛегкоНапишите программу, которая:
- Объявляет переменную типа double
resultи присваивает ей значение 5.65 - Объявляет переменную типа int
grade - Присваивает значение
resultпеременнойgrade, используя явное приведение типов - Выводит значение
gradeс сообщением "The grade is: ", используя printf
Шпаргалка
Неявное приведение типов — автоматическое преобразование из меньшего типа в больший:
int num = 10;
double decimal_num = num; // становится 10.0Обычный путь неявного приведения: char → int → long → float → double
Явное приведение типов — ручное преобразование с использованием (target_type) value:
double decimal_num = 5.65;
int num = (int)decimal_num; // становится 5 (отсекается, не округляется)Используйте явное приведение при преобразовании из большего типа в меньший, когда может произойти потеря данных.
Попробуйте сами
#include <stdio.h>
int main() {
double result = 5.65;
int grade;
// Используйте явное приведение типов для преобразования result (double) в grade (int)
printf("The grade is: %d\n", grade);
return 0;
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
2Переменные
Типы данныхЦелые числаFloat и DoubleСимволыЛогический типКонстантыОсновы printfПравила именования переменныхПриведение типов. Часть 1Приведение типов. Часть 2Итоговое задание3Операторы
Арифметические операторыОператор остатка от деленияИнкремент и декрементОператоры присваиванияОператоры сравненияЛогические операторы. Часть 1Логические операторы. Часть 2Логические операторы. Часть 3Задание на повторение