爲什麼需要結構體
爲了表示一些複雜的事物, 而普通的基本類型無法滿足實際要求。
如果只能使用基本類型來寫程序, 那將是一件痛苦的事情!
什麼叫結構體
把一些基本類型數據組合在一起形成一個新的複合數據類型, 這個叫結構體。
結構體的概念
由若干個"成員"組成, 其中的每一個成員可以使一個基本數據類型或者是一個構造類型。
如何定義結構體
定義新的結構類型, 但沒有定義變量
一般形式
struct 結構體名稱
{
成員表列
};
不要忘記大括號結尾的結束符!!!
例
struct P
{
int a[10];
char 'a';
};
定義了數據類型, 也定義了變量
一般形式
struct 結構體名
{
成員列表;
} 變量名列表;
這次的結束符在變量列表的後面哦!
例
struct p
{
int i;
char 'a';
} p1, p2;
直接定義結構體類型變量
一般形式
struct
{
成員列表
} 變量列表;
推薦第一種!
#include <stdio.h>
struct student
{
int mid;
int final;
int hmws;
};
int main()
{
struct student sam = {85, 90, 88};
struct student tom = {93, 88, 91};
struct student *he = &tom; // 通過指針訪問結構體及其成員
// 我們不能像讀寫變量一樣讀寫 student 結構體
// 不能直接對結構體進行比較,例如 sam == tom 是不對的
// 但是可以對已經定義的結構體變量進行交換,如下所示:
tom = sam;
// 通過輸出成員的方式輸出 tom
printf("tom = {%d, %d, %d}\n", tom.mid, tom.final, tom.hmws);
// 注意點號
printf("*he = {%d, %d, %d}\n", he->mid, he->final, he->hmws);
// 注意箭頭
// 通過其他方式也可以獲得同樣的輸出結果,如下所示:
printf("*he = {%d, %d, %d}\n", (*he).mid, (*he).final, (*he).hmws);
}
/*
例子來自C語言中文網:
http://c.biancheng.net/cpp/html/2572.html
*/