c語言結構體

2021-07-24 07:26:29 字數 1279 閱讀 1236

以前學過的資料型別只能定義簡單的資料資訊,而像學生的基本資訊(比如學號,姓名,出生日期,籍貫,成績等多個資料構成)的複雜資料,就需要相關的結構體的知識。

1.結構體型別變數的定義和引用。

(1)結構體資料

結構體定義形式:例如:

struct student

char name[9];

int age;

float grade;

struct表示定義的是結構體資料型別,student表示結構體型別名。花括號內一次列舉每個成員資料的型別及其名稱。結構體的成員資料也稱為域。

注意:每個成員資料的型別可以是基本資料型別(如int float....)或者自定義資料型別,但不能重名。

不僅如此,使用上述自定義的student型別,可以定義student型別的陣列s,用於存放10位學生的資料:

struct student s[10];

2.結構體變數的使用:

struct student a=,b=a,c,*p=&a;

(定義了三個student型別變數a,b,c,以及乙個student型別的指標變數p)

在訪問結構體變數的成員可以通過成員運算子(.)來實現,使用格式為:

結構體變數名.成員名

例如:strcpy(a.name,「李四」);

a.no=200140214;

再如:strcpy(p->name,「李四」);

p->no=200140214;

(2)typedef命令使用:

struct point

float x;

float y;

struct point p;

為了簡化變數p的定義,可以使用c語言提供的型別別名定義語句typedef為結構體型別point取乙個別名point,即:

typedef struct point point;

(3)結構體型別巢狀:

即為在乙個結構體中再巢狀使用別的結構體;

(4)結構體型別陣列:

定義乙個結構體變數只能表示乙個實體的相關資訊,若要表示多個記錄則要用結構體陣列。結構體陣列是結構體和陣列結合。

結構體陣列和變數的定義形式相似:

struct student

char name;

int age;

char ***;

}stu[4];

或者:struct student

char name;

int age;

char ***;

struct student stu[4];

C語言結構體

1.1.1 結構概念 1 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...

C語言 結構體

宣告乙個結構體型別 struct 結構體名 成員表列 定義結構體變數的方法 1 先宣告結構體型別再定義變數名。在定義了結構體變數後,系統會為之分配記憶體單元.例如 struct student student1,student2 2 在宣告型別的同時定義變數,例如 struct 結構體名 成員表列 ...

c語言 結構體

1 定義結構體 c語言允許使用者自己建立不同型別資料組成的組合型的資料結構 struct 結構體名 1 結構體的型別不是只有一種,可以根據需要設計許多種,如struct student struct worker等 2 結構體的成員可以是另一結構體的成員,注意的是引用此成員的方式 2 定義結構體變數...