鍍金池/ 教程/ C++/ D語言結(jié)構(gòu)體
類的訪問修飾符
D語言運(yùn)算符
D語言邏輯運(yùn)算符
類指針
D語言元組
D語言指針
D語言模塊
D語言sizeof運(yùn)算符
D語言混合類型
D語言封裝
D語言條件編譯
類的靜態(tài)成員
D語言do...while循環(huán)
D語言結(jié)構(gòu)體
重載
D語言字符串-String
D語言決策語句
D語言接口
D語言for循環(huán)
D語言switch語句
D語言關(guān)聯(lián)數(shù)組
D語言范圍
D語言枚舉Enums
契約式編程
D語言并發(fā)
D語言開發(fā)環(huán)境設(shè)置
D語言別名
D語言常值
D語言常量
D語言函數(shù)
D語言if嵌套語句
D語言循環(huán)
D語言概述,D語言是什么?
D語言運(yùn)算符優(yōu)先級
D語言continue語句
D語言異常處理
D語言break語句
D語言if...else語句
D語言類和對象
類繼承
D語言字符
D語言教程
D語言關(guān)系運(yùn)算符
比較操作符重載
構(gòu)造函數(shù)和析構(gòu)函數(shù)
D語言抽象類
D語言if語句
D語言賦值運(yùn)算符
D中算術(shù)運(yùn)算符
D語言類成員函數(shù)
D語言位運(yùn)算符
D語言變量
D語言數(shù)據(jù)類型
D語言文件I/O
D語言數(shù)組
一元運(yùn)算符重載
D語言嵌套switch語句
D語言基本語法
二元運(yùn)算符重載
this指針
D語言聯(lián)合體
D語言模板
D語言嵌套循環(huán)
D語言while循環(huán)

D語言結(jié)構(gòu)體

D語言數(shù)組允許定義類型的變量,可容納同類但是結(jié)構(gòu)體幾個數(shù)據(jù)項,它允許結(jié)合不同類型的數(shù)據(jù)項提供另一種用戶定義的數(shù)據(jù)類型。

結(jié)構(gòu)用來表示一個記錄,假設(shè)要跟蹤圖書館中的書籍??赡芟M櫫私饷勘緯囊韵聦傩裕?/p>

  • 書名

  • 作者

  • 科目

  • 書籍編號ID

定義一個結(jié)構(gòu)體

要定義一個結(jié)構(gòu),必須使用結(jié)構(gòu)體struct語句。該結(jié)構(gòu)語句定義了一個新的數(shù)據(jù)類型,項目不止一個成員。該結(jié)構(gòu)語句的格式是這樣的:

struct [structure tag]
{
   member definition;
   member definition;
   ...
   member definition;
} [one or more structure variables];  

結(jié)構(gòu)體標(biāo)簽是可選的,每個成員的定義是正常的變量定義,比如int i; or float f; 或任何其他有效的變量定義。在該結(jié)構(gòu)的定義的結(jié)尾,最后的分號之前,可以指定一個或多個結(jié)構(gòu)變量,但它是可選的。這里是將聲明書的結(jié)構(gòu)體:

struct Books
{
   char [] title;
   char [] author;
   char [] subject;
   int   book_id;
};

訪問結(jié)構(gòu)成員

要訪問一個結(jié)構(gòu)的任何成員,我們使用成員訪問運(yùn)算符(.)成員訪問運(yùn)算編碼為結(jié)構(gòu)體變量名,而我們希望訪問結(jié)構(gòu)成員之間的時間段。可以使用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í)行,它會產(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

結(jié)構(gòu)作為函數(shù)的參數(shù)

可以傳遞一個結(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語言if語句下一篇:D語言if嵌套語句