《演算法筆記》2 8結構體struct的使用

2021-09-25 06:29:03 字數 2068 閱讀 5367

二、**分析

結構體(struct)可以將若干個不同型別的變數或陣列封裝在一起,方便儲存一些復合資料

!!!結構體的大括號外也要跟分號誒!!!

結構體的定義

struct studentinfo alice, bob, stu[

1000

];

分析:其中 studentinfo是這個結構體的型別名,內部分別定義了id(學號)、gender(性別)、name(姓名)和 major(專業),這些就是單個學生的資訊。而在大括號外定義了 studentinfo型的 alice和bob代表兩個結構體變數;之後的stu[1000]就是當有很多學生時定義的乙個結構體陣列。(如果不在此處定義變數或陣列,則大括號外直接跟上分號)。

//結構體變數和結構體陣列除了可以像上面直接定義外,

//也可以按照基本資料型別(如int型)那樣定義:

studentinfo alice;

studentinfo stu[

1000

];

注意:結構體裡面能定義除了自己本身(這樣會引起迴圈定義的問題)之外的任何資料型別。不過雖然不能定義自己本身,但可以定義自身型別的指標變數

struct node;
訪問結構體內元素的兩種方法:①「.」操作 ②「->」操作

建構函式:用來初始化結構體的一種函式,直接定義在結構體中。特點:①不需要寫返回型別,②函式名與結構體名相同

struct studentinfo

//也可以手動提供初始化引數

studentinfo

(int _id,

char _gender)

//簡化為一行

studentinfo

(int _id,

char _gender):id

(_id)

,gender

(_gender)

};

注意:如果自己重新定義了建構函式,則不能不經初始化就定義結構體變數。也就是說,預設生成的建構函式「 studentinfo(){}」此時被覆蓋了。

為了既能不初始化就定義結構體變數又能享受初始化帶來的便捷,可以把「studentlnfo(){}」手動加上。這意味著,只要引數個數和型別不完全相同,就可以定義任意多個建構函式,以適應不同的初始化場合。

struct studentinfo

//只初始化 gender

studentinfo

(char _gender)

//同時初始化id和 gender

studentinfo

(int _id,

char _gender)

};

#include

struct point

//用以不經初始化地定義pt[10]

point

(int _x,

int _y):x

(_x),y

(_y)

//用以提供x和y的初始化

C語言結構體struct筆記

1 結構體 用來存放一組不同型別的資料,在結構體內定義。2 結構體定義形式 struct 結構體名 3 例項 學生結構體 struct student 注 student是結構體名字,包含一系列成員變數,不能初始化。最後的大括號外的 不能省略 4 結構體是一種資料型別,因此可以和int等資料型別用相...

什麼結構體 struct

簡單的來說,結構體就是乙個可以包含不同資料型別的乙個結構,它是一種可以自己定義的資料型別,它的特點和陣列主要有兩點不同,首先結構體可以在乙個結構中宣告不同的資料型別,第二相同結構的結構體變數是可以相互賦值的,而陣列是做不到的,因為陣列是單一資料型別的資料集合,它本身不是資料型別 而結構體是 陣列名稱...

定義結構體 struct

於 鏈結,struct student struct student stu struct student stuarray 10 struct student pstru 結構體型別是struct student,因此,struct和student都不能省略。但實際上,我用codeblocks執行...