Menu
Coddy logo textTech

Приведение типов. Часть 1

Часть раздела Fundamentals путешествия по C на Coddy — урок 13 из 63.

Приведение типов в C позволяет преобразовывать значение из одного типа данных в другой. Это полезно, когда вам нужно выполнять операции между различными типами данных.

Существует два основных типа приведения типов:

  1. Неявное приведение (автоматическое)
  2. Явное приведение (ручное)

Давайте начнем с неявного приведения типов:

Неявное приведение типов происходит автоматически при преобразовании из меньшего типа данных в больший:

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 требует, чтобы вы выполняли его явно — это сообщает компилятору, что вы осознаете потенциальную потерю данных.

challenge icon

Задание

Легко

Напишите программу, которая:

  1. Объявляет переменную типа double result и присваивает ей значение 5.65
  2. Объявляет переменную типа int grade
  3. Присваивает значение result переменной grade, используя явное приведение типов
  4. Выводит значение 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;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals