D編程 數(shù)據(jù)類(lèi)型

2021-09-01 10:08 更新

在D編程語(yǔ)言中,數(shù)據(jù)類(lèi)型是指用于聲明不同類(lèi)型的變量或函數(shù)的擴(kuò)展系統(tǒng)。

D中的類(lèi)型可以分類(lèi)如下-

Sr.No.Types & 描述
1

Basic Types

它們是算術(shù)類(lèi)型,由三種類(lèi)型組成:(a)整數(shù),(b)浮點(diǎn)數(shù)和(c)字符。

2

Enumerated types

它們還是算術(shù)類(lèi)型。它們用于定義在整個(gè)程序中只能分配某些離散整數(shù)值的變量。

3

The type void

類(lèi)型說(shuō)明符 void 表示沒(méi)有可用值。

4

Derived types

它們包括(a)指針類(lèi)型,(b)數(shù)組類(lèi)型,(c)結(jié)構(gòu)類(lèi)型,(d)聯(lián)合類(lèi)型和(e)函數(shù)類(lèi)型。

數(shù)組類(lèi)型和結(jié)構(gòu)類(lèi)型統(tǒng)稱(chēng)為集合類(lèi)型,函數(shù)的類(lèi)型指定函數(shù)的返回值的類(lèi)型。

整數(shù)類(lèi)型

下表列出了標(biāo)準(zhǔn)整數(shù)類(lèi)型及其存儲(chǔ)大小和值范圍-

類(lèi)型存儲(chǔ)空間值范圍
bool1個(gè)字節(jié)false或true
byte1個(gè)字節(jié)-128至127
ubyte1個(gè)字節(jié)0到255
int4個(gè)字節(jié)-2,147,483,648至2,147,483,647
uint4個(gè)字節(jié)0至4,294,967,295
short2個(gè)字節(jié)-32,768至32,767
ushort2個(gè)字節(jié)0至65,535
long8個(gè)字節(jié)-9223372036854775808至9223372036854775807
ulong8個(gè)字節(jié)0到18446744073709551615

要獲取類(lèi)型或變量的確切大小,可以使用 sizeof 運(yùn)算符,以下示例獲取任何機(jī)器上的int類(lèi)型的大小-

import std.stdio; 
 
int main() { 
   writeln("Length in bytes: ", ulong.sizeof); 

   return 0; 
}

當(dāng)您編譯并執(zhí)行上述程序時(shí),它將產(chǎn)生以下輸出-

Length in bytes: 8 

浮點(diǎn)類(lèi)型

下表提到了標(biāo)準(zhǔn)浮點(diǎn)類(lèi)型以及存儲(chǔ)大小,值范圍及其用途-

類(lèi)型空間值范圍用途
float4字節(jié)1.17549e-38至3.40282e + 386位小數(shù)位
double8字節(jié)2.22507e-308至1.79769e + 308小數(shù)點(diǎn)后15位
real10字節(jié)3.3621e-4932至1.18973e + 4932硬件支持的最大浮點(diǎn)類(lèi)型,或者為兩倍;較大者
ifloat4字節(jié)1.17549e-38i至3.40282e + 38ifloat的虛值類(lèi)型
idouble8字節(jié)2.22507e-308i至1.79769e + 308i虛數(shù)類(lèi)型為double
ireal10字節(jié)3.3621e-4932至1.18973e + 4932虛數(shù)值類(lèi)型
cfloat8字節(jié)1.17549e-38 + 1.17549e-38i至3.40282e + 38 + 3.40282e + 38i由兩個(gè)浮點(diǎn)數(shù)組成的復(fù)數(shù)類(lèi)型
cdouble16字節(jié)2.22507e-308 + 2.22507e-308i至1.79769e + 308 + 1.79769e + 308i由兩個(gè)雙精度數(shù)組成的復(fù)數(shù)類(lèi)型
creal20字節(jié)3.3621e-4932 + 3.3621e-4932i至1.18973e + 4932 + 1.18973e + 4932i由兩個(gè)實(shí)數(shù)組成的復(fù)數(shù)類(lèi)型

以下示例顯示浮點(diǎn)類(lèi)型及其范圍值占用的存儲(chǔ)空間-

import std.stdio;

int main() { 
   writeln("Length in bytes: ", float.sizeof); 

   return 0; 
}

當(dāng)您編譯并執(zhí)行上述程序時(shí),它在Linux上產(chǎn)生以下輸出-

Length in bytes: 4

字符類(lèi)型

下表列出了標(biāo)準(zhǔn)字符類(lèi)型及其存儲(chǔ)大小及其用途。

類(lèi)型存儲(chǔ)空間用途
char1個(gè)字節(jié)UTF-8代碼單元
wchar2個(gè)字節(jié)UTF-16代碼單元
dchar4個(gè)字節(jié)UTF-32代碼單元和Unicode代碼點(diǎn)

下面的示例顯示char類(lèi)型占用的存儲(chǔ)空間。

import std.stdio;

int main() {
   writeln("Length in bytes: ", char.sizeof);
   
   return 0;
}

當(dāng)您編譯并執(zhí)行上述程序時(shí),它將產(chǎn)生以下輸出-

Length in bytes: 1

Void類(lèi)型

void類(lèi)型指定沒(méi)有可用值。它在兩種情況下使用-

Sr.No.Types & 描述
1

Function returns as void

D中有各種函數(shù)不返回值,或者可以說(shuō)它們返回void,沒(méi)有返回值的函數(shù)的返回類(lèi)型為void。eg: void exit(int status) 

2

Function arguments as void

D中有許多不接受任何參數(shù)的函數(shù),沒(méi)有參數(shù)的函數(shù)可以接受為空。如, int rand(void);


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)