D語(yǔ)言數(shù)組允許定義類型的變量,可容納同類但是結(jié)構(gòu)體幾個(gè)數(shù)據(jù)項(xiàng),它允許結(jié)合不同類型的數(shù)據(jù)項(xiàng)提供另一種用戶定義的數(shù)據(jù)類型。
結(jié)構(gòu)用來表示一個(gè)記錄,假設(shè)要跟蹤圖書館中的書籍??赡芟M櫫私饷勘緯囊韵聦傩裕?/p>
書名
作者
科目
書籍編號(hào)ID
要定義一個(gè)結(jié)構(gòu),必須使用結(jié)構(gòu)體struct語(yǔ)句。該結(jié)構(gòu)語(yǔ)句定義了一個(gè)新的數(shù)據(jù)類型,項(xiàng)目不止一個(gè)成員。該結(jié)構(gòu)語(yǔ)句的格式是這樣的:
struct [structure tag] { member definition; member definition; ... member definition; } [one or more structure variables];
結(jié)構(gòu)體標(biāo)簽是可選的,每個(gè)成員的定義是正常的變量定義,比如int i; or float f; 或任何其他有效的變量定義。在該結(jié)構(gòu)的定義的結(jié)尾,最后的分號(hào)之前,可以指定一個(gè)或多個(gè)結(jié)構(gòu)變量,但它是可選的。這里是將聲明書的結(jié)構(gòu)體:
struct Books { char [] title; char [] author; char [] subject; int book_id; };
要訪問一個(gè)結(jié)構(gòu)的任何成員,我們使用成員訪問運(yùn)算符(.)成員訪問運(yùn)算編碼為結(jié)構(gòu)體變量名,而我們希望訪問結(jié)構(gòu)成員之間的時(shí)間段。可以使用struct關(guān)鍵字來定義結(jié)構(gòu)類型的變量。下面是例子來說明結(jié)構(gòu)的用法:
import std.stdio; struct Books { char [] title; char [] author; char [] subject; int book_id; }; void main( ) { Books Book1; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ Book1.title = "D Programming".dup; Book1.author = "Raj".dup; Book1.subject = "D Programming Tutorial".dup; Book1.book_id = 6495407; /* book 2 specification */ Book2.title = "Lua Programming".dup; Book2.author = "Raj".dup; Book2.subject = "Lua Programming Tutorial".dup; Book2.book_id = 6495700; /* print Book1 info */ writeln( "Book 1 title : ", Book1.title); writeln( "Book 1 author : ", Book1.author); writeln( "Book 1 subject : ", Book1.subject); writeln( "Book 1 book_id : ", Book1.book_id); /* print Book2 info */ writeln( "Book 2 title : ", Book2.title); writeln( "Book 2 author : ", Book2.author); writeln( "Book 2 subject : ", Book2.subject); writeln( "Book 2 book_id : ", Book2.book_id); }
當(dāng)上面的代碼被編譯并執(zhí)行,它會(huì)產(chǎn)生以下結(jié)果:
Book 1 title : D Programming Book 1 author : Raj Book 1 subject : D Programming Tutorial Book 1 book_id : 6495407 Book 2 title : Lua Programming Book 2 author : Raj Book 2 subject : Lua Programming Tutorial Book 2 book_id : 6495700
可以傳遞一個(gè)結(jié)構(gòu)非常類似的方式函數(shù)作為參數(shù)傳遞任何其他變量或指針。訪問在上面的例子已經(jīng)使用類似的方式的結(jié)構(gòu)變量:
import std.stdio; struct Books { char [] title; char [] author; char [] subject; int book_id; }; void main( ) { Books Book1; /* Declare Book1 of type Book */ Books Book2; /* Declare Book2 of type Book */ /* book 1 specification */ Book1.title = "D Programming".dup; Book1.author = "Raj".dup; Book1.subject = "D Programming Tutorial".dup; Book1.book_id = 6495407; /* book 2 specification */ Book2.title = "Lua Programming".dup; Book2.author =上一篇:D語(yǔ)言if語(yǔ)句下一篇:D語(yǔ)言if嵌套語(yǔ)句