C語言結構體類型?
struct在C語言中是一個關鍵字,用于定義結構數(shù)據(jù)類型。 問題中的兩種定義的區(qū)別在于第一種是給student數(shù)據(jù)類型,重新定義了一個類型別名,而第二種則單純的表示一種叫做student的數(shù)據(jù)結構類型。兩者的主要區(qū)別在于后面直接定義變量時。如下代碼,則可以直接在結構體后面定義一個zhang_san的結構體變量。struct student{int num;struct student *next;}zhang_san; 而第一種的定義,則會出現(xiàn)錯誤。typedef struct student{ int num; struct student *next;}student zhang_san; 擴展: “結構”是一種構造數(shù)據(jù)類型,現(xiàn)在一般叫做用戶自定義數(shù)據(jù)類型,它是由若干“成員”組成的。 每一個成員可以是一個基本數(shù)據(jù)類型或者又是一個構造類型。 結構即是一種“構造”而成的數(shù)據(jù)類型, 那么在說明和使用之前必須先定義它,也就是構造它。如同在說明和調用函數(shù)之前要先定義一樣。 定義一個結構的一般形式為:struct結構名{//成員表列}; 成員表由若干個成員組成, 每個成員都是該結構的一個組成部分。對每個成員也必須作類型說明,其形式為:“類型說明符 成員名;”。成員名的命名應符合標識符的書寫規(guī)定。例如:struct stu{ int num; char name[20]; char sex; float score;}; 在這個結構定義中,結構名為stu,該結構由4個成員組成。 第一個成員為num,整型變量;第二個成員為name,字符型數(shù)組;第三個成員為sex,字符型變量;第四個成員為score,浮點型變量。 應注意在括號后的分號是必不可少的。