目录

D Programming - 数据类型

在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类型,所以让我们继续,我们将在后面的章节中介绍这些概念。

↑回到顶部↑
WIKI教程 @2018