1. 什么是結構體?
結構體是一種工具,用這個工具可以定義自己的數據類型。
2. 結構體與a數組的比較
(1) 都由多個元素組成
(2) 各個元素在內存中的存儲空間是連續的
(3) 數組中各個元素的數據類型相同,而結構體中的各個元素的數據類型可以不相同
3. 結構體的定義和使用
(1) 一般形式
struct 結構體名
{
類型名1 成員名1;
類型名2 成員名2;
類型名n 成員名n;
};
struct student
{
char name[10];
char sex;
int age;
float score;
};
(2) 定義結構體類型的變量、指針變量和數組
方法一:定義結構體類型時,同時定義該類型的變量
struct [student] /* [ ]表示結構體名是可選的 */
{
char name[10];
char sex;
int age;
float score;
}stu1, *ps, stu[5]; /* 定義結構體類型的普通變量、指針變量和數組 */
方法二:先定義結構體類型,再定義該類型的變量
struct student
{
char name[10];
char sex;
int age;
float score;
};
struct student stu1, *ps, stu[5]; /* 定義結構體類型的普通變量、指針變量和數組 */
方法三:用類型定義符typedef先給結構體類型命別名,再用別名定義變量
typedef struct [student]
{
char name[10];
char sex;
int age;
float score;
}STU;
STU stu1, *ps, stu[5]; /* 用別名定義結構體類型的普通變量、指針變量和數組 */
(3) 給結構體變量賦初值
struct [student]
{
char name[10];
char sex;
int age;
float score;
}stu[2]={{"Li", 'F', 22, 90.5}, {"Su", 'M', 20, 88.5}};
(4) 引用結構體變量中的成員
1) 結構體變量名. 成員名: stu1.name
2) 結構體指針變量成員名: psname
3) (*結構體指針變量). 成員名: (*ps).name
4) 結構體變量數組名. 成員名: stu[0].name
4. 用結構體類型和基本數據類型定義變量的對比