В данном разделе будут рассмотрены основные типы данных в С++, эти типы данных ещё называются встроенными. Язык программирования С++ является расширяемым языком программирования. Понятие расширяемый означает то, что кроме встроенных типов данных, можно создавать свои типы данных. Поэтому в С++ существует огромное количество типов данных.
Тип | байт | Диапазон принимаемых значений |
---|---|---|
целочисленный (логический) тип данных |
||
bool | 1 | 0 / 255 |
целочисленный (символьный) тип данных |
||
char | 1 | 0 / 255 |
целочисленные типы данных |
||
short int | 2 | -32 768 / 32 767 |
unsigned short int | 2 | 0 / 65 535 |
int | 4 | -2 147 483 648 / 2 147 483 647 |
unsigned int | 4 | 0 / 4 294 967 295 |
long int | 4 | -2 147 483 648 / 2 147 483 647 |
unsigned long int | 4 | 0 / 4 294 967 295 |
типы данных с плавающей точкой |
||
float | 4 | -2 147 483 648.0 / 2 147 483 647.0 |
long float | 8 | -9 223 372 036 854 775 808 .0 / 9 223 372 036 854 775 807.0 |
double | 8 | -9 223 372 036 854 775 808 .0 / 9 223 372 036 854 775 807.0 |
В таблице 1 представлены основные типы данных в С++. Вся таблица делится на три столбца. В первом столбце указывается зарезервированное слово, которое будет определять, каждое свой, тип данных. Во втором столбце указывается количество байт, которое отводится под переменную с соответствующим типом данных. В третьем столбце показан диапазон допустимых значений. Обратите внимание на то, что в таблице все типы данных расположены от меньшего к большему.
В C++ различают явное и неявное преобразование типов данных. Неявное преобразование типов данных выполняет компилятор С++, ну а явное преобразование данных выполняет сам программист. О преобразовании типов данных скажу следующее: «Результат любого вычисления будет преобразовываться к наиболее точному типу данных, из тех типов данных, которые участвуют в вычислении». Для наглядного примера представлю таблицу с преобразованиями типов данных. В таблице рассмотрим операцию деления. В качестве целочисленного типа данных возьмем int, ну и вещественный тип данных у нас будет float.
x | y | Результат деления | Пример |
---|---|---|---|
делимое | делитель | частное | x = 15 y = 2 |
int | int | int | 15/2=7 |
int | float | float | 15/2=7.5 |
float | int | float | 15/2=7.5 |
Из таблицы видно, что меняя переменные различных типов данных местами, результат остается тот же (в нашем случае это делимое и делитель). О неявном преобразовании типов данных все. Что же касается явного преобразования, то оно необходимо для того чтобы выполнять некоторые манипуляции, тем самым меняя результат вычисления. Самый простой способ явного преобразования типов данных, пример: допустим нам необходимо разделить такие числа 15 и 2, делим! 15/2=7
. Результат тот же, что и в таблице. Но если сделать незначительные преобразования, например: 15.0/2=7.5
при таком делении число 15 является вещественным, значит и результат будет вещественный. Само число 15 с точки зрения математики не изменилось, ведь 15=15.0. Этот же прием можно было применить к двойке, результат был бы тем же, а можно было сразу к двум числам, но зачем ,если хватает одного из двух.
Еще один способ явного преобразования типов данных:
1
2
|
float (15) / 2 // результат равен 7.5, число 15 преобразуется в вещественный тип данных float. double (15) / 2 // результат равен 7.5 – тоже самое!!! |
В С++ также предусмотрена унарная операция приведения типа:
1
|
static_cast < /*тип данных*/ >( /*переменная или число*/ ) |
пример: static_cast<float>(15)/2
результат равен 7.5
Пример с переменной:
1
2
|
int ret=15; static_cast < float >(ret)/2 //результат равен 7.5 |