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