歡迎來(lái)到培訓(xùn)無(wú)憂網(wǎng)!

全國(guó)切換

咨詢熱線 400-001-5729

位置:培訓(xùn)無(wú)憂網(wǎng) > 新聞資訊 > 電腦/IT > c語(yǔ)言 >  C語(yǔ)言培訓(xùn)知識(shí):結(jié)構(gòu)體及結(jié)構(gòu)體數(shù)組的介紹

C語(yǔ)言培訓(xùn)知識(shí):結(jié)構(gòu)體及結(jié)構(gòu)體數(shù)組的介紹

來(lái)源:m.universityresearchassociates.com 發(fā)布人:云朵

2021-12-18 14:15:11|已瀏覽:255次

C語(yǔ)言培訓(xùn)知識(shí):結(jié)構(gòu)體及結(jié)構(gòu)體數(shù)組的介紹

    struct即結(jié)構(gòu)體,C程序中經(jīng)常需要用相關(guān)的不同類(lèi)型的數(shù)據(jù)來(lái)描述一個(gè)數(shù)據(jù)對(duì)象。例如,描述學(xué)生的綜合信息時(shí),需要使用學(xué)生的學(xué)號(hào)、姓名、性別等不同類(lèi)型的數(shù)據(jù)時(shí),像這種數(shù)據(jù)類(lèi)型總是在一起出現(xiàn),那么我們不如把這些變量裝入同一個(gè)“文件夾”中,這時(shí)用的關(guān)鍵字struct聲明的一種數(shù)據(jù)類(lèi)型就是表示這個(gè)“文件夾”的使用。那么在說(shuō)明和使用之前必須先定義它,也就是構(gòu)造它。如同在說(shuō)明和調(diào)用函數(shù)之前要先定義一樣。結(jié)構(gòu)體是一種集合,它里面包含了多個(gè)變量或數(shù)組,它們的類(lèi)型可以相同,也可以不同,每個(gè)這樣的變量或數(shù)組都稱為結(jié)構(gòu)體的成員,結(jié)構(gòu)體也是一種數(shù)據(jù)類(lèi)型,它由程序員自己定義,可以包含多個(gè)其他類(lèi)型的數(shù)據(jù),成員又稱為成員變量,它是結(jié)構(gòu)體所包含的若干個(gè)基本的結(jié)構(gòu)類(lèi)型,必須用“{}”括起來(lái),并且要以分號(hào)結(jié)束,每個(gè)成員應(yīng)表明具體的數(shù)據(jù)類(lèi)型,成員一般用名字訪問(wèn)。結(jié)構(gòu)體和數(shù)組類(lèi)似,也是一組數(shù)據(jù)的集合,整體使用沒(méi)有太大的意義。數(shù)組使用下標(biāo)[ ]獲訪問(wèn)元素,結(jié)構(gòu)體使用點(diǎn)號(hào).訪問(wèn)單個(gè)成員。通過(guò)這種方式可以獲取成員的值,也可以給成員賦值。

    數(shù)組:a[0]=10;   結(jié)構(gòu)體:today.day  (指針結(jié)構(gòu)體用->訪問(wèn)) 結(jié)構(gòu)體的成員可以包含其他結(jié)構(gòu)體,也可以包含指向自己結(jié)構(gòu)體類(lèi)型的指針,而通常這種指針的應(yīng)用是為了實(shí)現(xiàn)一些更高級(jí)的數(shù)據(jù)結(jié)構(gòu)如鏈表和樹(shù)等。

注意:

    1、結(jié)構(gòu)體本身并不會(huì)被作為數(shù)據(jù)而開(kāi)辟內(nèi)存,真正作為數(shù)據(jù)而在內(nèi)存中存儲(chǔ)的是這種結(jié)構(gòu)體所定義的變量。

    2、先聲明結(jié)構(gòu)體類(lèi)型,再定義該類(lèi)型的變量,聲明結(jié)構(gòu)體類(lèi)型,不分配空間定義結(jié)構(gòu)體類(lèi)型變量,就要分配內(nèi)存空間。

    3、量使用占為少的類(lèi)型,如,在可能的時(shí)候使用short代替int,「按數(shù)據(jù)類(lèi)型本身占用的位置從大到小排」。

    4、除了可以對(duì)成員進(jìn)行逐一賦值,也可以在定義時(shí)整體賦值:p1={struct week}{5,10}; 相當(dāng)于 p1.x=5,p1.y=10; p1=p2 表示 p1.x=p2.x ,  p1.y=p2.y; 不過(guò)整體賦值僅限于定義結(jié)構(gòu)體變量的時(shí)候,在使用過(guò)程中只能對(duì)成員逐一賦值 5、結(jié)構(gòu)體變量不能相加,相減,也不能相互乘除,但結(jié)構(gòu)體可以相互賦值,也就是說(shuō),可以將一個(gè)結(jié)構(gòu)體變量賦值給另一個(gè)結(jié)構(gòu)體變量。但是前提是這兩個(gè)結(jié)構(gòu)體變量的結(jié)構(gòu)體類(lèi)型必須相同。

    結(jié)構(gòu)體的運(yùn)算:要訪問(wèn)整個(gè)結(jié)構(gòu),直接用結(jié)構(gòu)變量的名字,對(duì)于整個(gè)結(jié)構(gòu),可以做賦值,取地址,也可以傳遞給函數(shù)參數(shù)。

    結(jié)構(gòu)體數(shù)組,是指數(shù)組中的每個(gè)元素都是一個(gè)結(jié)構(gòu)體。在實(shí)際應(yīng)用中,C語(yǔ)言結(jié)構(gòu)體數(shù)組常被用來(lái)表示一個(gè)擁有相同數(shù)據(jù)結(jié)構(gòu)的群體,比如一個(gè)班的學(xué)生、一個(gè)車(chē)間的職工等。結(jié)構(gòu)體可以存儲(chǔ)不同的數(shù)據(jù)類(lèi)型,將他們互相聯(lián)系起來(lái)。結(jié)構(gòu)體數(shù)組可以連續(xù)存儲(chǔ)多個(gè)結(jié)構(gòu)體,和數(shù)組作用相似。比如想定義同一個(gè)最小外接矩形的四個(gè)坐標(biāo)值,并給予這個(gè)矩形一個(gè)特征編號(hào)。當(dāng)需要存儲(chǔ)多個(gè)最小外接矩形的信息時(shí),就需要?jiǎng)討B(tài)申請(qǐng)一個(gè)結(jié)構(gòu)體數(shù)組

    定義結(jié)構(gòu)體數(shù)組的方法很簡(jiǎn)單,同定義結(jié)構(gòu)體變量是一樣的,只不過(guò)將變量改成數(shù)組。或者說(shuō)同前面介紹的普通數(shù)組的定義是一模一樣的:struct student  tp[10]; 這就定義了一個(gè)結(jié)構(gòu)體數(shù)組,共有 10 個(gè)元素,每個(gè)元素都是一個(gè)結(jié)構(gòu)體變量,都包含所有的結(jié)構(gòu)體成員。

    結(jié)構(gòu)體數(shù)組的初始化與前面講的數(shù)值型數(shù)組的初始化也是一樣的,數(shù)值型數(shù)組初始化的方法和需要注意的問(wèn)題在結(jié)構(gòu)體數(shù)組的初始化中同樣適用,因?yàn)椴还苁菙?shù)值型數(shù)組還是結(jié)構(gòu)體數(shù)組都是數(shù)組。

    本文由培訓(xùn)無(wú)憂網(wǎng)達(dá)內(nèi)教育課程顧問(wèn)老師整理發(fā)布,更多課程信息可關(guān)注C語(yǔ)言培訓(xùn)或添加老師微信:15033336050

      注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://m.universityresearchassociates.com/news-id-8473.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注c語(yǔ)言頻道查看更多,了解相關(guān)專(zhuān)業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專(zhuān)業(yè)課程!
  • 姓名:

  • 手機(jī):

  • 地區(qū):

  • 想學(xué)什么:

  • 培訓(xùn)無(wú)憂網(wǎng)
免 費(fèi) 申 請(qǐng) 試 聽(tīng)
提交申請(qǐng),《培訓(xùn)無(wú)憂網(wǎng)》課程顧問(wèn)老師會(huì)一對(duì)一幫助你規(guī)劃更適合你的專(zhuān)業(yè)課程!