- D 编程基础
- D 编程 - 主页
- D 编程 - 概述
- D 编程 - 环境
- D 编程 - 基本语法
- D 编程 - 变量
- D 编程 - 数据类型
- D 编程 - 枚举
- D 编程 - 文字
- D 编程 - 运算符
- D 编程 - 循环
- D 编程 - 决策
- D 编程 - 函数
- D 编程 - 字符
- D 编程 - 字符串
- D 编程 - 数组
- D 编程 - 关联数组
- D 编程 - 指针
- D 编程 - 元组
- D 编程 - 结构
- D 编程 - 联合
- D 编程 - 范围
- D 编程 - 别名
- D 编程 - Mixins
- D 编程 - 模块
- D 编程 - 模板
- D 编程 - 不可变
- D 编程 - 文件 I/O
- D 编程 - 并发
- D 编程 - 异常处理
- D 编程 - 合同
- D - 条件编译
- D 编程 - 面向对象
- D 编程 - 类和对象
- D 编程 - 继承
- D 编程 - 重载
- D 编程 - 封装
- D 编程 - 接口
- D 编程 - 抽象类
- D 编程 - 有用的资源
- D 编程 - 快速指南
- D 编程 - 有用的资源
- D 编程 - 讨论
D 编程 - 数据类型
在 D 编程语言中,数据类型是指用于声明不同类型的变量或函数的广泛系统。变量的类型决定了它在存储中占据多少空间以及如何解释存储的位模式。
D 中的类型可以分类如下 -
先生。 | 类型和描述 |
---|---|
1 | 基本类型 它们是算术类型,由三种类型组成:(a) 整数、(b) 浮点数和 (c) 字符。 |
2 | 枚举类型 它们又是算术类型。它们用于定义在整个程序中只能分配某些离散整数值的变量。 |
3 | 类型无效 类型说明符void表示没有可用值。 |
4 | 派生类型 它们包括 (a) 指针类型、(b) 数组类型、(c) 结构类型、(d) 联合类型和 (e) 函数类型。 |
数组类型和结构类型统称为聚合类型。函数的类型指定函数的返回值的类型。我们将在下一节中看到基本类型,而其他类型将在接下来的章节中介绍。
整数类型
下表列出了标准整数类型及其存储大小和值范围 -
类型 | 存储大小 | 取值范围 |
---|---|---|
布尔值 | 1字节 | 假或真 |
字节 | 1字节 | -128 至 127 |
优字节 | 1字节 | 0 至 255 |
整数 | 4字节 | -2,147,483,648 至 2,147,483,647 |
单位 | 4字节 | 0 至 4,294,967,295 |
短的 | 2字节 | -32,768 至 32,767 |
超短 | 2字节 | 0 至 65,535 |
长的 | 8字节 | -9223372036854775808 至 9223372036854775807 |
乌龙 | 8字节 | 0 至 18446744073709551615 |
要获取类型或变量的确切大小,可以使用sizeof运算符。表达式type.(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 | 硬件支持的最大浮点类型,或 double;以较大者为准 |
浮动 | 4字节 | 1.17549e-38i 至 3.40282e+38i | float 的虚值类型 |
双重 | 8字节 | 2.22507e-308i 至 1.79769e+308i | double 的虚值类型 |
我真的 | 10字节 | 3.3621e-4932 至 1.18973e+4932 | 实数的虚值类型 |
浮点型 | 8字节 | 1.17549e-38+1.17549e-38i 至 3.40282e+38+3.40282e+38i | 由两个浮点数组成的复数类型 |
双倍 | 16字节 | 2.22507e-308+2.22507e-308i 至 1.79769e+308+1.79769e+308i | 由两个双精度数组成的复数类型 |
创造的 | 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
字符类型
下表列出了标准字符类型及其存储大小及其用途。
类型 | 存储大小 | 目的 |
---|---|---|
字符 | 1字节 | UTF-8 编码单元 |
字符型 | 2字节 | UTF-16 编码单元 |
字符 | 4字节 | UTF-32 代码单元和 Unicode 代码点 |
以下示例打印 char 类型占用的存储空间。
import std.stdio; int main() { writeln("Length in bytes: ", char.sizeof); return 0; }
当您编译并执行上述程序时,它会产生以下结果 -
Length in bytes: 1
虚空类型
void 类型指定没有可用值。它用于两种情况 -
先生。 | 类型和描述 |
---|---|
1 | 函数返回 void D 中有多种不返回值的函数,或者您可以说它们返回 void。无返回值的函数的返回类型为 void。例如,void exit(int status); |
2 | 函数参数为 void D 中有多种不接受任何参数的函数。没有参数的函数可以接受 void。例如,int rand(void); |
此时您可能不理解 void 类型,所以让我们继续,我们将在接下来的章节中介绍这些概念。