1.結構體型別
由於乙個陣列中只能存放同一種型別的資料,很不方便,所以c語言允許使用者自己建立由不同型別資料組成的組合型的資料結構,也就是結構體,通俗講就像是打包封裝,把一些有共同特徵(比如同屬於某一類事物的屬性,往往是某種業務相關屬性的聚合)的變數封裝在內部,通過一定方法訪問修改內部變數。
宣告乙個結構體型別的一般形式是
stuct 結構體名
{成員列表};
這樣只是建立了乙個結構體型別,相當於乙個模型,並沒有定義變數,其中並沒有具體資料,系統也不對之分配記憶體單元。可以採用以下三種方法定義結構體型別變數。
2.結構體型別變數
struct student
{ int num;
char name[20];
char ***;
int age;
}struct student s1,s2;
struct student
{ int num;
char name[20];
char ***;
int age;
}s1,s2;
struct
{ int num;
char name[20];
char ***;
int age;
}s1,s2;
指定了乙個無名的結構體型別,它沒有名字(不出現結構體名字),顯然不能再用這個結構體型別去定義其他變數,這種方式用的不多。
3.結構體變數的初始化和引用
#include int main()
s1=;
printf("no.:%d\name:%s\***%c\age:%d\n",s1.num,s1.name,s1.***,s1.age);
return 0;
}
(1)在定義結構體變數時可以對它的成員初始化,初始化列表時用花括號括起來的一些常量,這些常量依次賦值給結構體變數中的各成員,注意:是對結構體變數初始化,而不是對結構體型別初始化。
(2)引用結構體變數中成員的值:結構體變數名.成員名。「.」是成員運算子,在所有的運算子中優先順序最高。
C語言結構體的定義和使用
在實際問題中,一組資料往往具有不同的資料型別 例如在學生資訊登記表中,姓名為字元型,學號為整型或字元型,年齡為整型,性別為字元型,成績為整型或實型。因為資料型別不同,顯然不能用乙個陣列來存放。在c語言中,可以使用 結構體 struct 來存放一組不同型別的資料。定義結構體的一般形式為 struct ...
c語言結構體的定義和使用
2.編寫乙個函式print,列印乙個學生的成績陣列,該陣列中有5個學生的資料記錄,每個記錄包括num,name,score 3 用主函式輸入這些記錄,用print函式輸出這些記錄。如下 include struct student student 5 全域性結構體陣列 在全域性都可以使用,例如被調函...
定義使用結構體變數
1.使用者自己建立的由不同型別資料組成的組合型的資料結構稱為結構體 如 struct date struct student 結構體中的成員可以屬於另乙個結構體型別,例如上例子中的birthday 這只是建立了結構體型別,並沒有定義變數,所以系統對之也不分配儲存單元 1 先宣告型別,再定義變數 st...