結構體也是一種數據類型 (這種數據類型裏面可以定義不同的數據類型的數據,是一種用戶自定義的數據類型)
當然結構體裏面可以嵌套數組和結構體
結構體的定義
struct 結構體名
{
成員變量的數據類型1 成員變量名1;
成員變量的數據類型2 成員變量名2;
.......
};
//注意 結構體的命名用駝峯法 每一個成員變量後面要加上; 在最後的{}後面要加上;
結構體變量的定義
struct 結構體名 結構體變量名 = {值1, 值2, 值3, 值4};
結構體的使用:使用點語法來訪問成員變量 結構體變量名 . 成員變量名;
結構體可以直接賦值 數組不能直接賦值
類型重命名
typedef 原類型名 新類型名;
注意:新類型名使用的命名規範爲大駝峯法
typedef struct student Student;
struct abc {
char a;
char d;
short b;
int c;
};
//結構體的內存是最大成員變量數據類型所佔的字節數的倍數
//結構體成員變量的順序, 會影響到結構體所佔的字節數
//合理的排布成員變量的順序, 能夠減少內存碎片, 降低結構體所佔的字節數
//把short b放到第二個位置的話, 所佔字節數則是12, 以前兩個所佔字節平分單元