数据类型
在D编程语言中,数据类型是指用于声明不同类型的变量或函数的扩展系统。 变量的类型决定了它在存储中占用的空间大小以及如何解释存储的位模式。
D中的类型可分为以下几类 -
Sr.No. | 类型和描述 |
---|---|
1 | Basic Types 它们是算术类型,由三种类型组成:(a)整数,(b)浮点和(c)字符。 |
2 | Enumerated types 它们又是算术类型。 它们用于定义只能在整个程序中分配某些离散整数值的变量。 |
3 | The type void 类型说明符void表示没有可用的值。 |
4 | Derived types 它们包括(a)指针类型,(b)数组类型,(c)结构类型,(d)联合类型和(e)函数类型。 |
数组类型和结构类型统称为聚合类型。 函数的类型指定函数返回值的类型。 我们将在下一节中看到基本类型,而其他类型将在后续章节中介绍。
整数类型 (Integer Types)
下表列出了标准整数类型及其存储大小和值范围 -
类型 | 存储大小 | 价值范围 |
---|---|---|
bool | 1个字节 | false or true |
byte | 1个字节 | -128 to 127 |
ubyte | 1个字节 | 0到255 |
int | 4字节 | -2,147,483,648 to 2,147,483,647 |
uint | 4字节 | 0 to 4,294,967,295 |
short | 2个字节 | -32,768 to 32,767 |
ushort | 2个字节 | 0 to 65,535 |
long | 8个字节 | -9223372036854775808 to 9223372036854775807 |
ulong | 8个字节 | 0 to 18446744073709551615 |
要获得类型或变量的确切大小,可以使用sizeof运算符。 表达式type.(sizeof)产生对象或类型的存储大小(以字节为单位)。 以下示例在任何计算机上获取int类型的大小 -
import std.stdio;
int main() {
writeln("Length in bytes: ", ulong.sizeof);
return 0;
}
编译并执行上述程序时,会产生以下结果 -
Length in bytes: 8
Floating-Point Types
下表提到了具有存储大小,值范围及其用途的标准浮点类型 -
类型 | 存储大小 | 价值范围 | 目的 |
---|---|---|---|
float | 4字节 | 1.17549e-38至3.40282e + 38 | 6 decimal places |
double | 8个字节 | 2.22507e-308至1.79769e + 308 | 15 decimal places |
real | 10个字节 | 3.3621e-4932至1.18973e + 4932 | 硬件支持的最大浮点类型,或者双倍; 以较大者为准 |
ifloat | 4字节 | 1.17549e-38i至3.40282e + 38i | 浮动的虚数值类型 |
idouble | 8个字节 | 2.22507e-308i至1.79769e + 308i | 虚数值的double类型 |
ireal | 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 | 由两个实数组成的复数类型 |
以下示例打印float类型占用的存储空间及其范围值 -
import std.stdio;
int main() {
writeln("Length in bytes: ", float.sizeof);
return 0;
}
编译并执行上述程序时,它会在Linux上生成以下结果 -
Length in bytes: 4
角色类型
下表列出了具有存储大小及其用途的标准字符类型。
类型 | 存储大小 | 目的 |
---|---|---|
char | 1个字节 | UTF-8代码单元 |
wchar | 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中有各种功能,不接受任何参数。 没有参数的函数可以作为void接受。 例如, int rand(void); |
此时可能无法理解void类型,所以让我们继续,我们将在后面的章节中介绍这些概念。