2021-12-18 14:15:11|已瀏覽:272次
struct即結構體,C程序中經常需要用相關的不同類型的數據來描述一個數據對象。例如,描述學生的綜合信息時,需要使用學生的學號、姓名、性別等不同類型的數據時,像這種數據類型總是在一起出現,那么我們不如把這些變量裝入同一個“文件夾”中,這時用的關鍵字struct聲明的一種數據類型就是表示這個“文件夾”的使用。那么在說明和使用之前必須先定義它,也就是構造它。如同在說明和調用函數之前要先定義一樣。結構體是一種集合,它里面包含了多個變量或數組,它們的類型可以相同,也可以不同,每個這樣的變量或數組都稱為結構體的成員,結構體也是一種數據類型,它由程序員自己定義,可以包含多個其他類型的數據,成員又稱為成員變量,它是結構體所包含的若干個基本的結構類型,必須用“{}”括起來,并且要以分號結束,每個成員應表明具體的數據類型,成員一般用名字訪問。結構體和數組類似,也是一組數據的集合,整體使用沒有太大的意義。數組使用下標[ ]獲訪問元素,結構體使用點號.訪問單個成員。通過這種方式可以獲取成員的值,也可以給成員賦值。
數組:a[0]=10; 結構體:today.day (指針結構體用->訪問) 結構體的成員可以包含其他結構體,也可以包含指向自己結構體類型的指針,而通常這種指針的應用是為了實現一些更高級的數據結構如鏈表和樹等。
注意:
1、結構體本身并不會被作為數據而開辟內存,真正作為數據而在內存中存儲的是這種結構體所定義的變量。
2、先聲明結構體類型,再定義該類型的變量,聲明結構體類型,不分配空間定義結構體類型變量,就要分配內存空間。
3、量使用占為少的類型,如,在可能的時候使用short代替int,「按數據類型本身占用的位置從大到小排」。
4、除了可以對成員進行逐一賦值,也可以在定義時整體賦值:p1={struct week}{5,10}; 相當于 p1.x=5,p1.y=10; p1=p2 表示 p1.x=p2.x , p1.y=p2.y; 不過整體賦值僅限于定義結構體變量的時候,在使用過程中只能對成員逐一賦值 5、結構體變量不能相加,相減,也不能相互乘除,但結構體可以相互賦值,也就是說,可以將一個結構體變量賦值給另一個結構體變量。但是前提是這兩個結構體變量的結構體類型必須相同。
結構體的運算:要訪問整個結構,直接用結構變量的名字,對于整個結構,可以做賦值,取地址,也可以傳遞給函數參數。
結構體數組,是指數組中的每個元素都是一個結構體。在實際應用中,C語言結構體數組常被用來表示一個擁有相同數據結構的群體,比如一個班的學生、一個車間的職工等。結構體可以存儲不同的數據類型,將他們互相聯系起來。結構體數組可以連續存儲多個結構體,和數組作用相似。比如想定義同一個最小外接矩形的四個坐標值,并給予這個矩形一個特征編號。當需要存儲多個最小外接矩形的信息時,就需要動態申請一個結構體數組
定義結構體數組的方法很簡單,同定義結構體變量是一樣的,只不過將變量改成數組。或者說同前面介紹的普通數組的定義是一模一樣的:struct student tp[10]; 這就定義了一個結構體數組,共有 10 個元素,每個元素都是一個結構體變量,都包含所有的結構體成員。
結構體數組的初始化與前面講的數值型數組的初始化也是一樣的,數值型數組初始化的方法和需要注意的問題在結構體數組的初始化中同樣適用,因為不管是數值型數組還是結構體數組都是數組。
本文由培訓無憂網達內教育課程顧問老師整理發布,更多課程信息可關注C語言培訓或添加老師微信:15033336050注:尊重原創文章,轉載請注明出處和鏈接 http://www.dedgn.cn/news-id-8473.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注c語言頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050
姓名:
手機:
地區: