C語言之結構體

2021-07-24 00:00:11 字數 2459 閱讀 3237

一、什麼是結構體

結構體是不同型別的資料組合成乙個有機整體。例如:學生的學號

、姓名、性別、成績、位址 這些都是乙個學生的屬性,把這些屬性組織成乙個組合,組合中包含不同的資料型別,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 ...