C語言 結構體

2021-10-25 17:25:25 字數 1958 閱讀 6151

結構體是不同型別資料的集合,把這些資料稱為結構體的成員。

結構體型別需要自己定義來說明結構體中具體由哪些型別的資料組成,所以結構體也是一種自定義型別。

語法格式:

struct《結構體標籤》;

例如:定義乙個學生的型別

struct student

;

struct student

;struct student st;

//st為結構體變數

struct student st1,st2;

//st1,st2為結構體變數

struct studentst1,st2;

//st1,st2為結構體變數

struct

st1,st2;

//st1,st2為結構體變數

//與陣列類似

struct student st = ;

struct student st1 = ;

struct student st2 = ;

struct student st = ;

注意://與陣列相似,結構體變數也不能整體賦值,例如:

struct student st ;

st = ; //錯誤

//只能分別給結構體中的每乙個成員賦值,例如:

st.sno = 1002 ;

strcpy(st.name,「jack」);

st.score = 87.87;

//同型別結構體變數之間可以互相賦值,例如:

struct student st1 = ;

struct student st2;

st2 = st1; //相互賦值

只能分別列印每乙個成員,例如:

struct student st1 = ;

printf("%d %s %.2f\n",st.sno,st.name,st.score);

元素為結構體型別的陣列稱為結構體陣列,例如:

struct student st[5] ; //st[0],st[1],st[2],st[3],st[4]都是結構體型別的變數。

例如:

#include

#include

//定義乙個結構體型別

struct student

;int

main

(void

)printf

("學生的資訊如下:\n");

printf

("-------------------------\n");

printf

("sno name score\n");

printf

("-------------------------\n");

for(i =

0; i < n; i++

)return0;

}

struct student

;int

main

(void);

struct student * ps;

ps =

&st;

//結構體指標儲存結構體變數的位址

printf

("%d %s %.2f\n"

,st.sno,st.name,st.score)

;printf

("%d %s %.2f\n",(

*ps)

.sno,

(*ps)

.name,

(*ps)

.score)

;printf

("%d %s %.2f\n"

,ps->sno,ps->name,ps->score)

;return0;

}

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 定義結構體變數...