初學C語言之結構體

2021-07-03 16:15:56 字數 1892 閱讀 5144

結構體屬於一種資料構造型別,它是由若干「成員」組成的。每乙個成員可以是乙個基本資料型別或者又是乙個構造型別。

一、結構體的定義:

struct  結構名  {成員列表}; 

例如:struct stu {

int num;

char name[30];

char ***;

float score;

};  

在這個結構定義中,結構名為stu,該結構由四個「成員」組成,包括num(整型變數),name(字元陣列),***(字元變數),score(實型變數)。由此可見,結構體是一種由型別不同的若干有序變數組成的集合。  

二、結構型別變數的說明

1)先定義結構體,再說明結構變數  

struct stu {

int num;

char name[30];

char ***;

float score; };

struct stu people1,people2;//說明兩個變數people1和people2為stu結構型別。也可以使用巨集定義使乙個符號常量來表示乙個結構型別。

例如:#define stu struct stu

stu ;

stu people1,people2;

注意:1.結構體型別與結構體變數是不同的概念,不能混同。

2.對結構體變數中的成員,可以單獨使用。

2 )在定義結構型別的同時說明結構變數

struct stu

people1,people2;//說明了people1,people2變數為stu型別後,就可以向這兩個變數中的各個成員賦值。(成員就是num,name,***,score)

3)結構變數成員的表示方法

一般形式:  結構變數名.成員名(中間的點不可省略,也不可以用空格代替)

例如: people1.***   就是代表第乙個人的性別

說明:結構體變數不能整體引用,只能引用變數成員。

4)結構變數賦值

意思就是給各成員賦值。可用輸入語句或賦值語句來完成。

int main(int argc,const char *argv)

people1,people2;

people1.num = 66;

people1.name = "leo";

printf("intput *** and score\n");

scanf("%c%f",&people1.***,&people1.score);

people2 = people1;

printf("number = %d\nname = %s\n",people2.num,people2.name);

printf("*** = %c\nscore = %f\n",people2.***,people2.score); }

return 0; }

本程式中用賦值語句給num和name兩個成員賦值,用scanf函式輸入性別和成績的值,然後把people1的所有成員的值整體賦予people2,最後分別輸出people2的各個成員值。

5)結構體型別巢狀使用

總結:

1.當乙個結構體型別定義在函式之外時,它具有全域性作用域;若定義在任一對花括號之內,則具有區域性作用御,其作用範圍是所在花括號構成的快。

2.結構體是一種複雜的資料型別,是數目固定、型別不同的若干成員的集合,結構體型別的定義只是列出了該結構的組成情況,編譯系統並未因此而分配儲存空間,當定義了結構體型別的變數或陣列後,編譯系統才會分配儲存空間。

3.如果有兩個結構體的成員型別、名稱、個數相同,但結構體名不同,也是兩個不同的結構型別。

個人心語:

C語言之結構體

一 什麼是結構體 結構體是不同型別的資料組合成乙個有機整體。例如 學生的學號 姓名 性別 成績 位址 這些都是乙個學生的屬性,把這些屬性組織成乙個組合,組合中包含不同的資料型別,c和c 允許指定這樣的資料型別,稱為結構體。struct student 申明乙個結構體型別 struct是結構體申明的關...

C語言之結構體

在c語言中,可以使用結構體 struct 來存放一組不同型別的資料。結構體的定義形式為 struct 結構體名 結構體是一種集合,它裡面包含了多個變數或陣列,它們的型別可以相同,也可以不同,每個這樣的變數或陣列都稱為結構體的成員 member 請看下面的乙個例子 struct stu stu 為結構...

C語言之結構體

在c語言中,有一種型別聽著很任性,叫做自定義型別。顧名思義,這種型別是程式設計師自己定義的一種型別,它和陣列很相似,但也有一些區別。自定義型別包含以下幾種 結構體 列舉 聯合 結構體就是將具有不同或相同的型別放在一起的聚合型別。可能聽著有些像順口溜,上一段 捋一捋。struct peo a 在 中我...