全國(guó)咨詢(xún)/投訴熱線(xiàn):400-618-4000

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

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

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

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

結(jié)構(gòu)體類(lèi)型與其他數(shù)據(jù)類(lèi)型相同,其變量要通過(guò)數(shù)據(jù)類(lèi)型定義,但結(jié)構(gòu)體類(lèi)型是一種自定義數(shù)據(jù)類(lèi)型,其變量定義方式與其他數(shù)據(jù)類(lèi)型有些許區(qū)別。結(jié)構(gòu)體變量的定義方式主要有兩種,下面分別進(jìn)行介紹。

1、先定義結(jié)構(gòu)體類(lèi)型,再定義結(jié)構(gòu)體變量

先定義結(jié)構(gòu)體類(lèi)型,再定義結(jié)構(gòu)體變量,這種結(jié)構(gòu)體變量定義方式與其他數(shù)據(jù)類(lèi)型相同,其語(yǔ)法格式如下:

struct 結(jié)構(gòu)體類(lèi)型名 結(jié)構(gòu)體變量名;

以上一節(jié)定義的struct Student結(jié)構(gòu)體類(lèi)型為例,定義該結(jié)構(gòu)體變量的示例代碼如下:

struct Student stu1,stu2;

上述代碼定義了2個(gè)結(jié)構(gòu)體類(lèi)型變量stu1和stu2,這時(shí),stu1和stu2便具有了結(jié)構(gòu)體特征,編譯器會(huì)為它們分配一段內(nèi)存空間用于存儲(chǔ)具體數(shù)據(jù),具體如下圖所示。

1606730051852_結(jié)構(gòu)體變量的定義.png

struct Student結(jié)構(gòu)體變量stu1、stu2的存儲(chǔ)結(jié)構(gòu)

需要注意的是,使用結(jié)構(gòu)體類(lèi)型定義變量時(shí),struct關(guān)鍵字不可少,struct Student作為整體才表示一個(gè)結(jié)構(gòu)體類(lèi)型。缺少struct關(guān)鍵字,程序編譯不通過(guò)。錯(cuò)誤示例代碼如下:

Student stu1;     //錯(cuò)誤,缺少struct關(guān)鍵字

編譯器在編譯上述代碼時(shí)會(huì)報(bào)錯(cuò),提示未定義標(biāo)識(shí)符“Student”。

2、 在定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量

定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量,其語(yǔ)法格式如下:

struct 結(jié)構(gòu)體類(lèi)型名稱(chēng)
{
  數(shù)據(jù)類(lèi)型 成員名1;
  數(shù)據(jù)類(lèi)型 成員名2;
  …
  數(shù)據(jù)類(lèi)型 成員名*n*;
 }結(jié)構(gòu)體變量名列表;

以定義struct Student結(jié)構(gòu)體類(lèi)型,并定義struct Student類(lèi)型的變量stu1、stu2為例,具體示例如下:

struct Student{
  int num;  char name[10];
  char sex;
}stu1,stu2;

上述代碼在定義結(jié)構(gòu)體類(lèi)型struct Student的同時(shí)定義了結(jié)構(gòu)體變量stu1和stu2,該方式的作用與先定義結(jié)構(gòu)體類(lèi)型,再定義結(jié)構(gòu)體變量作用相同,其中,stu1和stu2中所包含的成員類(lèi)型都是一樣的。


猜你喜歡:
c語(yǔ)言變量定義

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

C/C++培訓(xùn)課程 

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