一起來看看C語言世界中的結(jié)構(gòu)體
一、結(jié)構(gòu)體的概念:
結(jié)構(gòu)體是由一批數(shù)據(jù)聚合而成的結(jié)構(gòu)型數(shù)據(jù)。
引入結(jié)構(gòu)體,程序設(shè)計(jì)人員就可以根據(jù)需要定義用于描述事物不同屬性的多個(gè)數(shù)據(jù)項(xiàng),然后把這些數(shù)據(jù)項(xiàng)聚合成一個(gè)整體(結(jié)構(gòu)體)來表示事物。
舉個(gè)例子:
每個(gè)學(xué)生都有自己的信息。
struct student//結(jié)構(gòu)體名
{
int num;//結(jié)構(gòu)體成員:學(xué)號(hào)
char name[20];//結(jié)構(gòu)體成員:名字
float score;//結(jié)構(gòu)體成員:成績
}; //別忘記了這個(gè)分號(hào)以上就是結(jié)構(gòu)體的定義。
注意:結(jié)構(gòu)體成員可以是任意類型的變量,但不允許是自身類型的變量。(不能自己的體內(nèi)再放一個(gè)自己)
二、結(jié)構(gòu)體變量的定義和初始化
結(jié)構(gòu)體是一種數(shù)據(jù)類型,自然和其他基本數(shù)據(jù)類型一樣,在定義了結(jié)構(gòu)體類型后,還需要定義結(jié)構(gòu)體類型的變量,C語言編譯器才會(huì)為結(jié)構(gòu)體變量分配存儲(chǔ)單元,然后才能通過結(jié)構(gòu)體變量來操作和訪問結(jié)構(gòu)體的數(shù)據(jù)。
結(jié)構(gòu)體變量的定義
(1)單獨(dú)定義
struct 結(jié)構(gòu)體名
{
類型名 結(jié)構(gòu)體成員1;
類型名 結(jié)構(gòu)體成員2;
類型名 結(jié)構(gòu)體成員3;
};
struct 結(jié)構(gòu)體名 結(jié)構(gòu)體變量名表;//結(jié)構(gòu)體變量名表就相當(dāng)于
//我們輸入學(xué)生信息所指定的那個(gè)學(xué)生(2)混合定義(在定義結(jié)構(gòu)體的同時(shí)定義結(jié)構(gòu)體變量)
struct 結(jié)構(gòu)體名
{
類型名 結(jié)構(gòu)體成員1;
類型名 結(jié)構(gòu)體成員2;
類型名 結(jié)構(gòu)體成員3;
}結(jié)構(gòu)體變量名表;//即直接定義學(xué)生姓名,不用重復(fù)寫struct 結(jié)構(gòu)體名,然后再寫學(xué)生姓名結(jié)構(gòu)體變量的初始化
和其他基本類型一樣,結(jié)構(gòu)體變量也可以初始化
初始化的格式一般為:
struct 結(jié)構(gòu)體名 結(jié)構(gòu)體變量名 = { 初始化值1, 初始化值2......初始化值n};接下來我們使用上面學(xué)生信息來舉個(gè)例:
struct student//結(jié)構(gòu)體名
{
int num;//結(jié)構(gòu)體成員:學(xué)號(hào)
char name[20];//結(jié)構(gòu)體成員:名字
float score;//結(jié)構(gòu)體成員:成績
}; //別忘記了這個(gè)分號(hào)struct student = { 1 張三 88.9};三、結(jié)構(gòu)體變量的使用(" . "與" -> "的使用)
(1)" . "的使用(1級運(yùn)算符,結(jié)合方向從左到右):
結(jié)構(gòu)體變量名 . 結(jié)構(gòu)體成員名
依然使用學(xué)生信息來舉例:
struct student//結(jié)構(gòu)體名
{
int num;//結(jié)構(gòu)體成員:學(xué)號(hào)
char name[20];//結(jié)構(gòu)體成員:名字
float score;//結(jié)構(gòu)體成員:成績
}stu1,stu2;
stu1.score = 90.0;(2)"->"的使用(1級運(yùn)算符,結(jié)合方向從左到右):
格式:
結(jié)構(gòu)體指針變量名->結(jié)構(gòu)體成員名
還是那個(gè)例子:
struct student//結(jié)構(gòu)體名
{
int num;//結(jié)構(gòu)體成員:學(xué)號(hào)
char name[20];//結(jié)構(gòu)體成員:名字
float score;//結(jié)構(gòu)體成員:成績
}stu1,stu2;
struct student *p=&stu1;
p->score=55.5;//意為將55.5賦值給p指向的結(jié)構(gòu)體變量stu1的score成員總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
c++中臨時(shí)變量不能作為非const的引用參數(shù)的方法
下面小編就為大家?guī)硪黄猚++中臨時(shí)變量不能作為非const的引用參數(shù)的方法。小編覺得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
全局變量與局部變量在內(nèi)存中的區(qū)別詳細(xì)解析
以下是對全局變量與局部變量在內(nèi)存中的區(qū)別進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-10-10
C++?RBTree紅黑樹的性質(zhì)與實(shí)現(xiàn)
紅黑樹是一種二叉搜索樹,但在每個(gè)結(jié)點(diǎn)上增加一個(gè)存儲(chǔ)位表示結(jié)點(diǎn)的顏色,可以是Red或Black;通過對任何一條從根到葉子的路徑上各個(gè)結(jié)點(diǎn)著色方式的限制,紅黑樹確保沒有一條路徑會(huì)比其他路徑長出倆倍,因而是平衡的2023-03-03

