複習結構體和typedef struct

2021-10-22 04:26:03 字數 1484 閱讀 4474

複習結構體和typedef為接下來的資料結構學習做準備

c語言提供了一些由系統已定義好的資料型別,如:int,float,char等,使用者可以在程式中用他們定義變數,解決一般的問題,但是人們要處理的問題往往比較複雜,只有系統提供的型別還不能滿足應用的要求,c語言允許使用者根據需要自己建立一些資料型別,並用它來定義變數——《c程式設計(第五版)》

*定義乙個結構體及賦初值(該例用於下面各種情形)

struct student   //結構體名

stu[2]

=;//陣列名及陣列長度,賦初值

*呼叫的時候用陣列名而不用結構體名

printf

("%s"

,stu[0]

.name)

;

*在定義函式的時候如果設計結構體需要用struct student(這裡定義乙個空函式,表達意思即可)

void

fun1

(struct student)

//表示 struct student這個型別

*使用這個函式的時候放陣列名(相當於這個結構體的位址)

int

main()

除了可以直接使用c提供的標準型別名(如 int,char,float,double和long等)和程式編寫者自己宣告的結構體、共用體、列舉型別外,還可以用typedef指定新的型別名來代替已有的型別名——《c程式設計(第五版)》

*typedef相當於給原有的或者新定義的函式或變數取個小名,例如:

typedef

int integer;

int i,j;等價於 integer i,j;

*typedef struct不能賦初值一起執行

typedef struct student

stu[2]=;

正確做法如下:

typedef

struct student

stu[2]

;int

main()

;//給a賦值

printf

("%s\n"

,a[0

].name)

;printf

("%s"

,a[1

].name)

;return0;

}

這裡的a相當於有兩個記憶體單元的struct student型別的陣列,而這裡的stu相當於乙個結構體型別,不能用於直接賦值(就像不能給int 賦值一樣)

比較簡單的複習了一遍結構體和typedef

上次的作業為了實現乙個功能,定義了乙個結構體,同時為了讓**的閱讀性提高,給結構體定了個很長的名字,其實可以通過上述,用typedef可以臨時定義乙個名字,使**整體沒有那麼冗長

結構體複習

1.編寫乙個函式print,輸出若干位學生的資料記錄,有5位學生,每一位學生的資料記錄包括學號 num 姓名 name 三門課的成績 g 3 要求用主函式輸入這些記錄,用print函式輸出這些記錄。請定義結構體程式設計實現。an highlighted block var foo bar inclu...

c語言複習 結構體和共用體

注 本文是對蘇小紅版c語言程式設計第12章的筆記 結構體的定義 結構體的宣告 主要目的 用已有的資料型別定義乙個新的資料型別 struct 結構體名 結構體名成為結構體標籤 e.g.struct student 注意,結構體模板只是宣告了一種資料型別,並未宣告結構體型別的變數 結構體變數的定義 方法...

結構體複習總結

結構體 先簡單的介紹一下結構體 結構體是一種型別,是一些值的集合,這些值稱為成員變數。結構體的每個成員可以是不同型別的變數。1.結構體型別的建立 struct stua,p 這裡stu是結構體名稱,a是結構體變數,p是指向結構體的指標。在建立結構體時,結構體名稱不能省略,否則無法引用結構體。在定義結...