一、什麼是結構體
結構體是不同型別的資料組合成乙個有機整體。例如:學生的學號
、姓名、性別、成績、位址 這些都是乙個學生的屬性,把這些屬性組織成乙個組合,組合中包含不同的資料型別,c和c++允許指定這樣的資料型別,稱為結構體。
struct student //申明乙個結構體型別(struct是結構體申明的關鍵字)
; //最後要有分號
申明結構體型別的形式:
struct 結構體型別名
;注:c語言中的結構體包括資料,但在c++中可以包含函式
二、結構體變數的定義方法及其初始化
1.定義結構體變數的方法
(1)先宣告結構體型別在定義變數
struct student student1,student2;//c++中可以不加關鍵字struct
(2)在申明型別的同時定義變數
struct student
student1,student2;
一般形式為:
struct 結構體名
變數名列表;
(3).直接定義結構體型別變數
三、結構體變數的初始化
struct student
student1 = ;yinyong
如果student類已經宣告也可以採用
student student = ;
四、結構體變數的引用
(1).可以將乙個結構體變數賦值給另乙個具有相同結構的結構體變數
(2).引用結構體變數中的乙個成員值:
結構體變數名.成員名;
例如:student.num = 100010;
(3).不能將乙個結構體變數作為乙個整體進行輸入和輸出,只能對各個成員進行分別輸入輸出
(4).結構體變數可以像普通變數一樣進行運算
(5).可以引用結構體成員變數的位址,也可以引用結構體變數的位址
五、結構體陣列
結構體陣列的每個陣列元素都是結構體型別的資料,包括各個成員項
struct student
;student stu[3]; //三個結構體型別相同的同學
也可以這樣定義
struct student
stu[3];
1、結構體型別初始化
struct student
stu[3] = ,,};
也可以不指定元素個數:
stu = {{},{},{}};
也可以:student stu = ,{},{}};
六、指向結構體變數的指標
結構體變數的指標指向結構體變數的起始位置,也可以指向結構體陣列中的元素
1. struct student
student1;
student stu;
student *p = &stu;
cout<<(*p)>num<<" "<<(*p).num三種表示方法等價:stu.num\(*p).num\p->num
2.用指向結構體變數的指標構成鍊錶
struct student
;例:#define null 0
#include
struct student
;int main()
while(p!= null);
return 0;
}七、結構體型別作為函式引數
(1).結構體名作為引數:
struct student
;void print(student);
(2).指向結構體變數的指標做實參
struct student
stu;
void print(student *); //形參為指向student的指標變數
student *pt = &stu;
print(pt);
(3).結構體變數引用做函式引數
struct student
stu;
void print(student &);
八、共用體
幾個不同變數共占用同一段記憶體結構為共用體,共用體內存長度等於最長成員長度
union data
a,b,c;
注意:不能引用共用體變數,而只能引用共用體變數的成員:a.i 輸出時:cout<九、列舉
乙個變數只有幾種可能的值,可以使用列舉:enum weekday; 列舉型別weekday的列舉常量
一般型別為:enum 列舉型別名;weekday workday,week_end;這樣workday,week_end被定義為weekday的變數
也可以寫成:enum weekday workday,week_end;
c++中也可以寫成:enumworkday,week_end;
十、用typedef宣告型別
如:typedef int integer;int i,j;integer i,j;
typedef也可以宣告結構體型別
C語言之結構體
在c語言中,可以使用結構體 struct 來存放一組不同型別的資料。結構體的定義形式為 struct 結構體名 結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員 member 請看下面的乙個例子 struct stu stu 為結構...
C語言之結構體
在c語言中,有一種型別聽著很任性,叫做自定義型別。顧名思義,這種型別是程式設計師自己定義的一種型別,它和陣列很相似,但也有一些區別。自定義型別包含以下幾種 結構體 列舉 聯合 結構體就是將具有不同或相同的型別放在一起的聚合型別。可能聽著有些像順口溜,上一段 捋一捋。struct peo a 在 中我...
c語言之結構體
結構體 為什麼需要結構體 為了表示一些複雜的事物,而普通的基本型別無 法滿足實際需求。什麼叫結構體 把一些基本型別資料組合在一起形成的乙個新的復合資料型別,這個叫結構體 如何定義結構體 第一種方式 這只是定義了乙個新的資料型別,並沒有定義變數 struct student 第二種方式 struct ...