C語言 結構體

2021-05-26 23:04:32 字數 1445 閱讀 4621

宣告乙個結構體型別:

struct    結構體名

{成員表列};

定義結構體變數的方法:

(1)先宣告結構體型別再定義變數名。 在定義了結構體變數後,系統會為之分配記憶體單元.

例如:struct  student      student1,student2;

(2)在宣告型別的同時定義變數,例如:

struct 結構體名

{成員表列

}變數名表列;

3) 直接定義結構體型別變數,例如:

struct

{成員表列

}變數名表列;

即不出現結構體名。

結構體變數的引用:

(1)不能將乙個結構體變數作為乙個整體進行輸入和輸出。引用結構體變數中成員的方式為:

結構體變數名.成員名

(2) 如果成員本身又屬乙個結構體型別,則要用若干個成員運算子,一級一級地找到最低的一級的成員。只能對最低階的成員進行賦值或訪問以及運算。

(3) 對結構體變數的成員可以像普通變數一樣進行各種運算(根據其型別決定可以進行的運算).

(4) 可以引用結構體變數成員的位址,也可以引用結構體變數的位址。結構體變數的位址主要用作函式引數,傳遞結構體變數的位址。

結構體變數初始化:

struct student  a=;

定義結構體陣列:

struct student

;struct student[3];

或者直接定義乙個結構體陣列

struct 

;stu[3];

結構體陣列初始化:

struct student

,,};

或者:

struct student

;   stu[2]=,      };

乙個結構體變數的指標就是該變數所佔據的記憶體段的起始位址。可以定義乙個指標變數,用來指向乙個結構體變數,此時該指標變數的值是結構體變數的起始位址。指標變數也可以用來指向結構體陣列中的元素.

以下3種形式等價:

① 結構體變數.成員名

②(*p).成員名

p->成員名

「->」稱為指向運算子

「.」稱為成員運算子

應用:

#include

#define n 3

struct student

;//struct student stu[5];

void input(struct student *p,int n)

C語言結構體

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

c語言 結構體

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

C語言 結構體

以前學過的基本資料型別有int型 儲存整形資料 float型 儲存浮點型資料 char型 儲存字元型資料 這些都是不能拆分的基本資料型別,而結構體也是一種資料型別,它是一種構造型別,是可以進行拆分的。結構體裡可以儲存整形資料 浮點型資料 字元型資料.相當於把基本資料型別整合到結構體裡 結構體命名 s...