3. 其他語法
陣列是乙個有順序,並且型別相同的一組資料的集合,那麼如果我們想把幾個型別不同的資料放到一起怎麼辦呢?
陣列是相同型別的多個變數綁到一起;結構體是不同型別的多個變數綁到一起。
比如:乙個學生的 姓名、年齡、成績,它們分別是由不同的資料型別組成,即姓名是字串資料,年齡是整型資料,成績是浮點型(小數)型資料。這個時候我們就可以使用結構體來實現。
struct 結構體名
;
結構體裡面的成員定義方式與變數相同,也就是在結構體裡面定義了多個變數。
例如,定義乙個學生的結構體:
struct student
;
struct student student1;
以上就定義了乙個student
型別的結構體變數student1
,這個變數就可以代表乙個學生,他擁有姓名、年齡、成績這三個成員。
結構體不能進行整體的輸入和輸出,需要對成員分別操作,這稱為結構體變數成員引用。
格式如下:
結構體變數名.成員名
在結構體變數名和成員中間有個英文的句號.
。
例如:輸入輸出學生資訊
#include
struct student
;int
main()
結構體變數成員賦值就是給結構體內所有成員依次賦值。
struct student student1;
struct student student2;
strcpy
(student1.name,
"張三");
student1.age =19;
student1.score =
90.5
;strcpy
(student2.name,
"李四");
student2.age =18;
student2.score =
95.5
;printf
("姓名\t年齡\t分數\n");
printf
("%s\t%d\t%.1f\n"
,student1.name,student1.age,student1.score)
;printf
("%s\t%d\t%.1f\n"
,student2.name,student2.age,student2.score)
;
注意:數值型別成員可以直接賦值,字串型別變數需要使用字串複製函式。
結構體變數整體賦值就是給結構體所有成員一起賦值。
struct student student1;
struct student student2;
strcpy
(student1.name,
"張三");
student1.age =19;
student1.score =
90.5
;student2 = student1;
printf
("姓名\t年齡\t分數\n");
printf
("%s\t%d\t%.1f\n"
,student1.name,student1.age,student1.score)
;printf
("%s\t%d\t%.1f\n"
,student2.name,student2.age,student2.score)
;
結構體能整體賦值,陣列不能直接賦值。如果結構體變數直接初始化,操作更加簡單。
struct student student1 =
;struct student student2 =
;printf
("姓名\t年齡\t分數\n");
printf
("%s\t%d\t%.1f\n"
,student1.name,student1.age,student1.score)
;printf
("%s\t%d\t%.1f\n"
,student2.name,student2.age,student2.score)
;
注意:賦值資料順序必須與結構體成員宣告順序一致。
結構體除了整體初始化外,也可以像下面部分初始化。
struct point3d
;struct point3d p =
;
struct student student1,student2;
struct student student1 =
;
結構體巢狀結構體 C語言結構體
希望今年夏天的遺憾能成為你秋天的驚喜。網易雲熱評 一 結構體概念 可以簡單理解為把不同資料型別放到一起的陣列 二 結構體宣告與初始化 1 先宣告結構體型別再定義變數 2 同時定義變數 3 直接定義結構體型別變數 include include include include struct aiyou...
C語言結構體和結構體排序
結構體 結構體是一種構造資料型別 構造資料型別包括 陣列型別 結構體型別 共用體型別 定義 把不同的資料組合成乙個整體。結構體的一般形式struct 結構體名稱 struct是關鍵字 不要忘記這裡的分號定義結構體的三種方法 第一種 先定義結構體型別,在定義變數名 struct student str...
c語言結構體之結構體巢狀
注意 1結構體內部再次定義乙個結構體 但是沒有建立結構體的例項 也就是說再次定義的結構體內部的變數會被當做母結構體的成員變數 1 struct tianchao 2 11 12 13 void mainww 14 24 25 struct tianchao 26 b1 內部定義的第一種方式 35 s...