D Программирование - Типы данных
В языке программирования D типы данных относятся к обширной системе, используемой для объявления переменных или функций различных типов. Тип переменной определяет, сколько места она занимает в хранилище и как интерпретируется сохраненный битовый шаблон.
Типы в D можно классифицировать следующим образом:
| Sr. No. | Типы и описание |
|---|---|
| 1 | Basic Types Это арифметические типы, состоящие из трех типов: (а) целые, (б) с плавающей точкой и (в) символьные. |
| 2 | Enumerated types Это снова арифметические типы. Они используются для определения переменных, которым в программе могут быть присвоены только определенные дискретные целочисленные значения. |
| 3 | The type void Спецификатор типа void указывает, что значение недоступно. |
| 4 | Derived types Они включают (а) типы указателей, (б) типы массивов, (в) типы структур, (г) типы объединения и (д) типы функций. |
Типы массивов и типы структур в совокупности называются агрегатными типами. Тип функции определяет тип возвращаемого значения функции. Мы увидим основные типы в следующем разделе, тогда как другие типы будут рассмотрены в следующих главах.
Целочисленные типы
В следующей таблице приведены списки стандартных целочисленных типов с их размерами хранения и диапазонами значений.
| Тип | Размер хранилища | Диапазон значений |
|---|---|---|
| bool | 1 байт | ложь или правда |
| байт | 1 байт | От -128 до 127 |
| убайт | 1 байт | От 0 до 255 |
| int | 4 байта | От -2 147 483 648 до 2 147 483 647 |
| uint | 4 байта | От 0 до 4 294 967 295 |
| короткая | 2 байта | От -32 768 до 32 767 |
| ushort | 2 байта | От 0 до 65 535 |
| долго | 8 байт | От -9223372036854775808 до 9223372036854775807 |
| Улонг | 8 байт | 0 в 18446744073709551615 |
Чтобы получить точный размер типа или переменной, вы можете использовать sizeofоператор. Тип выражения . (Sizeof) дает размер хранилища объекта или типа в байтах. В следующем примере получается размер типа int на любой машине -
import std.stdio;
int main() {
writeln("Length in bytes: ", ulong.sizeof);
return 0;
}
Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат:
Length in bytes: 8
Типы с плавающей точкой
В следующей таблице упоминаются стандартные типы с плавающей запятой с размерами хранилища, диапазонами значений и их назначением.
| Тип | Размер хранилища | Диапазон значений | Цель |
|---|---|---|---|
| плавать | 4 байта | С 1.17549e-38 до 3.40282e + 38 | 6 знаков после запятой |
| двойной | 8 байт | 2.22507e-308 до 1.79769e + 308 | 15 знаков после запятой |
| настоящий | 10 байт | 3.3621e-4932 до 1.18973e + 4932 | либо самый большой тип с плавающей запятой, поддерживаемый оборудованием, либо двойной; в зависимости от того, что больше |
| плавать | 4 байта | От 1.17549e-38i до 3.40282e + 38i | тип мнимого значения float |
| двойной | 8 байт | 2.22507e-308i - 1.79769e + 308i | мнимое значение типа double |
| я реальный | 10 байт | 3.3621e-4932 до 1.18973e + 4932 | мнимое значение тип реального |
| cfloat | 8 байт | От 1.17549e-38 + 1.17549e-38i до 3.40282e + 38 + 3.40282e + 38i | тип комплексного числа, состоящий из двух поплавков |
| cdouble | 16 байт | 2.22507e-308 + 2.22507e-308i до 1.79769e + 308 + 1.79769e + 308i | тип комплексного числа, состоящий из двух двойных |
| Creal | 20 байт | От 3.3621e-4932 + 3.3621e-4932i до 1.18973e + 4932 + 1.18973e + 4932i | комплексное число, состоящее из двух действительных чисел |
В следующем примере печатается место для хранения, занятое типом с плавающей запятой, и его значениями диапазона:
import std.stdio;
int main() {
writeln("Length in bytes: ", float.sizeof);
return 0;
}
Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат в Linux:
Length in bytes: 4
Типы персонажей
В следующей таблице перечислены стандартные типы символов с размерами хранилища и их назначением.
| Тип | Размер хранилища | Цель |
|---|---|---|
| char | 1 байт | Кодовый блок UTF-8 |
| чар | 2 байта | Кодовый блок UTF-16 |
| dchar | 4 байта | Кодовый блок UTF-32 и кодовая точка Unicode |
В следующем примере печатается объем памяти, занимаемый типом char.
import std.stdio;
int main() {
writeln("Length in bytes: ", char.sizeof);
return 0;
}
Когда вы компилируете и выполняете вышеуказанную программу, она дает следующий результат:
Length in bytes: 1
Тип пустоты
Тип void указывает, что значение недоступно. Он используется в двух ситуациях:
| Sr. No. | Типы и описание |
|---|---|
| 1 | Function returns as void В D есть различные функции, которые не возвращают значение, или вы можете сказать, что они возвращают void. Функция без возвращаемого значения имеет тип возврата как void. Например,void exit (int status); |
| 2 | Function arguments as void В D есть различные функции, которые не принимают никаких параметров. Функция без параметров может быть пуста. Например,int rand(void); |
Тип void может быть вам непонятен на данном этапе, поэтому давайте продолжим, и мы рассмотрим эти концепции в следующих главах.