複習結構體和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是指向結構體的指標。在建立結構體時,結構體名稱不能省略,否則無法引用結構體。在定義結...