Переменная – ячейка памяти. Назначение типа определяет размер этой ячейки, какие операции можно выполнять с данной переменной, допустимые значения, которые может принимать переменная.
Классификация типов данных:
- Простые (скалярные) – целые, вещественные, логические (булевские).
- Структурированные – массивы, структуры, объединения, классы.
- Адресные – указатели, ссылки.
Простые типы данных
Целый тип
-
char – целый символьный тип;
-
short int – короткий целый тип;
-
int – целый тип;
-
long int – длинный целый тип.
Каждый из целочисленных типов может быть определён как знаковый (signed) или беззнаковый (unsigned) тип. При отсутствие ключевого слова, по умолчанию принимается знаковый тип.
Вещественный тип
-
float – вещественный тип одинарной точности;
-
doudle – вещественный тип двойной точности;
-
long double – вещественный тип расширенной точности;
Логический тип
Тип данных
|
Размер, байт
|
Диапазон значений
|
char
|
1
|
-128… +128
|
int
|
2/4
|
зависит от системы
|
unsigned char
|
1
|
0… 255
|
unsigned int
|
2/4
|
зависит от системы
|
short int
|
2
|
-32768… 32767
|
unsigned short
|
2
|
0… 65535
|
long int
|
4
|
-2147483648… 2147483648
|
unsigned long int
|
4
|
0… 4294967295
|
float
|
4
|
±(3.4Е-38… 3.4Е+38)
|
double
|
8
|
±(1.7Е-308… 1.7Е+308)
|
long double
|
10
|
±(3.4Е-4932… 1.1Е+4932)
|
Анализируя данные таблицы, можно сделать следующие выводы:
-
если не указан базовый тип, то по умолчанию подразумевается int;
-
если не указан модификатор знаков, то по умолчанию подразумевается
signed;
-
с базовым типом float модификаторы не употребляются;
-
модификатор short применим только к базовому типу int.
Привидение типов (явное и неявное)
Приведением типов называется преобразование значения одного типа к значению другого типа, при этом возможно как сохранение величины этого значения, так и изменение этой величины. Приведение типов также называют преобразованием типов.
При деление двух переменных целого типа результат получится целый. Для получения вещественного результата, необходимо явное преобразование типа.
int a=5; int b=2; float t;
t=a/b (при этом t будет равняться 2)
t= (float)a/b (при этом t будет ровняться 2,5).
На момент вычисления изменили тип переменной а – это и есть явное приведение типов. Приведённый тип указывается в круглых скобках перед переменной.
Неявное преобразование типов используется когда в бинарной операции операнды имеют различные типы. В этом случае компилятор выполняет преобразование типов автоматически, т.е все они приводятся к типу с наибольшим диапазоном значений.
int a=5; float b=2; float t;
t=a/b (результат = 2,5)
При неявном преобразование типов выполняется правило переводов низших типов в высшие для точности представления данных и их непротиворечивости (низший тип – char, высший - long double; см.таблицу).
|