слепки C
Отливает переменной преобразуется из одного типа в другой тип данных. Например, если вы хотите сохранить значение длинного типа к простому числу, вам нужно набирать длинные преобразованный к типу Int. Вы можете использоватьоператор приведения явно поместить значения из одного типа в другой тип, выглядит следующим образом :
(type_name) expression
Рассмотрим следующие примеры, использование оператора обязательного преобразования к целочисленной переменной на другой целой переменной, получить плавающей точкой:
#include <stdio.h> main() { int sum = 17, count = 5; double mean; mean = (double) sum / count; printf("Value of mean : %f\n", mean ); }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Value of mean : 3.400000
Отметим здесь оператор приведения имеет приоритет над делением, поэтому значениесуммы сначала преобразуется в двойной,а затем разделить рассчитывать, получить значение типа двойника.
Преобразование типа может быть неявным, выполняется автоматически компилятором, он может быть явным, задается с помощьюоператора произнесения.В программировании существует необходимость тратить время на оператора преобразования типа броска, является хорошей практикой программирования.
Интегральное продвижение
Относится к интегральному продвижению меньше , чемInt или неподписанные INTцелого типа преобразуется вцелоебез знака или процессаInt.Рассмотрим следующий пример, добавить символ в Int:
#include <stdio.h> main() { int i = 17; char c = 'c'; /* ascii 值是 99 */ int sum; sum = i + c; printf("Value of sum : %d\n", sum ); }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Value of sum : 116
Здесь сумма значения 116, потому что компилятор является неотъемлемой частью продвижения при выполнении собственно операции сложения, то 'C' значение преобразуется в соответствующее значение ASCII.
Обычные арифметические преобразования
Обычные арифметические преобразования неявно приводится к значению того же типа.Компилятор сначала выполняетцелочисленное подъем, если операнды разных типов, то они преобразуются в следующей иерархии появляется высокий уровень Тип:
Обычные арифметические преобразования не применяются к оператору присваивания, логические операторы && и ||. Давайте посмотрим на следующие примеры, чтобы понять эту концепцию:
#include <stdio.h> main() { int i = 17; char c = 'c'; /* ascii 值是 99 */ float sum; sum = i + c; printf("Value of sum : %f\n", sum ); }
Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:
Value of sum : 116.000000
Здесь, с сначала преобразуется в целое число, но из-за последнего значения двойного типа, поэтому применяются обычные арифметические преобразования, компилятор я и с преобразуется плавать, и положить их вместе, чтобы получить число с плавающей точкой ,