C語言中的結構體是一個小難點,下面我們詳細來講一下:至於什么是結構體,結構體為什么會產生,我就不說了,原因很簡單,但是要注意到是結構體也是連續存儲的,但要注意的是結構體里面類型各異,所以必然會產生內存對齊的問題。也就是內存里面會有空檔。
1.結構體的定義和賦值
結構體是可以直接初始化的,在定義的時候,就可以初始化,而且如果你的結構體中恰好有字符數組的話,這個時候初始化是不錯的選擇,原因很簡單,字符數組只能定義的時候直接初始化
后來就不可以了,后來你就只能用strcpy函數來拷貝初始化了。
struct 結構體名
{
數據類型 成員名1;
數據類型 成員名2;
:
數據類型 成員名n;
};
2.定義結構體變量的倆種方法:
struct 結構體名
{
成員列表;
}變量名1;
struct 結構體名 變量名2;
訪問結構體成員
結構體變量名.成員名
3.結構體初始化操作
struct 結構體名 變量名={初始數據表};
無名結構體
沒有類型名。
一般狀態下:無名結構體不可以定義局部變量。
4.結構體嵌套
1--- 成員所屬的數據類型是 結構體類型
2--- 內部的結構體通常定義為無名結構體