首頁(yè)技術(shù)文章正文

C語(yǔ)言中結(jié)構(gòu)體如何定義?

更新時(shí)間:2020-11-30 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif

C語(yǔ)言中結(jié)構(gòu)體類型是由不同的類型的數(shù)據(jù)組成的,組成結(jié)構(gòu)體類型的每一個(gè)數(shù)據(jù)都稱為該結(jié)構(gòu)體類型的成員。在程序設(shè)計(jì)中,使用結(jié)構(gòu)體時(shí),首先要對(duì)結(jié)構(gòu)體類型的組成進(jìn)行描述,結(jié)構(gòu)體的定義方式如下:

struct 結(jié)構(gòu)體類型名稱
{
  數(shù)據(jù)類型 成員名1;
  數(shù)據(jù)類型 成員名2;
  ……
  數(shù)據(jù)類型 成員名n;};

在上述格式中,struct是定義結(jié)構(gòu)體類型的關(guān)鍵字,struct關(guān)鍵字后面是結(jié)構(gòu)體類型名稱。在結(jié)構(gòu)體類型名稱下的一對(duì)大括號(hào)中,聲明了結(jié)構(gòu)體類型的成員,每個(gè)成員由數(shù)據(jù)類型和成員名共同組成。

以描述學(xué)生信息為例,假設(shè)學(xué)生信息包含學(xué)號(hào)(num)、姓名(name)、性別(sex)、年齡(age)、地址(address),那么,存儲(chǔ)學(xué)生信息的結(jié)構(gòu)體類型可以定義為下列格式:

struct Student{
  int num;
  char name[10];
  char sex;  int age;
  char address[30];
};

在上述定義中,結(jié)構(gòu)體類型struct Student由5個(gè)成員組成,分別是num、name、sex、age和address。

在定義結(jié)構(gòu)體類型時(shí),需要注意以下幾點(diǎn):

(1)結(jié)構(gòu)體類型定義以關(guān)鍵字struct開(kāi)頭,后面跟的是結(jié)構(gòu)體類型的名稱,該名稱的命名規(guī)則與變量名相同;

(2)結(jié)構(gòu)體類型與整型、浮點(diǎn)類型、字符類型等類似,只是數(shù)據(jù)類型,而非變量。

(3)定義好一個(gè)結(jié)構(gòu)體類型后,并不意味著編譯器會(huì)分配一塊內(nèi)存單元存放各個(gè)數(shù)據(jù)成員,它只是告訴編譯系統(tǒng)結(jié)構(gòu)體類型由哪些類型的成員構(gòu)成、各占多少字節(jié)、按什么格式存儲(chǔ),并把它們當(dāng)作一個(gè)整體來(lái)處理。

(4)定義結(jié)構(gòu)體類型時(shí),末尾的分號(hào)不可缺少。


猜你喜歡:

C語(yǔ)言什么特點(diǎn)?具有什么優(yōu)勢(shì)? 

c語(yǔ)言二級(jí)指針的理解 

c語(yǔ)言指針詳解:什么是指針? 

黑馬程序員C/C++培訓(xùn)課程 

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!