1、c語言基本型別:字元型,整型,浮點型
2、結構體(複雜型別):自定義型別 i
3、定義變數:為了分配空間
型別 變數名; //注:分配空間編譯器通過型別來分配
初始化:定義變數同時賦值
3.1定義結構體(自定義)的型別
struct 型別名
;3.1.1無巢狀結構體:所有屬性都是基本型別
//定義人的型別:人的資訊(姓名,姓別,身高)
struct people
;3.1.2巢狀結構體:屬性是乙個結構體變數
struct people
;3.2定義結構體變數:型別 變數名;
struct 型別名 變數名;
3.3引用結構元素:一定要通過結構體變數來引用屬性。
.運算子 :引用複雜型別的成員
變數名.屬性;
3.4結構體的分配空間法則:以最大字元素位元組對齊 (*)
1、查詢最大元素的型別
2、每個元素都分配以最大型別的最小的倍數。
3、共享空間?
注:gcc編譯器可以指定對齊方式(這不是c語言的標準)
__attribute__((packed))
3.5結構體變數之間賦值: 注:同型別之間,不同型別的結構體是不能賦值的
struct people a,b;
a=b;
結構體詳解
結構體宣告 struct tag 結構體名稱可以省略,但建議不要省略 s,p 可以在宣告的同時定義變數 舉個例子 struct x struct p,s 注意 這裡是匿名結構體,編譯器把二者看作完全不同的型別 結構體訪問 結構體訪問操作符 點操作符 操作符。struct stu p,s 成員訪問 s...
結構體對齊詳解
include struct a int main struct b 現在已知32位機器上各種資料型別的長度如下 char 1 有符號無符號同 short 2 有符號無符號同 int 4 有符號無符號同 long 4 有符號無符號同 float 4 double 8 那麼上面兩個結構大小如何呢?結果...
Linux Struct file 結構體詳解
二 struct path f path 被定義在linux include linux namei.h中,其原型為 struct path 在早些版本的核心中並沒有此結構,而是直接將path的兩個資料成員作為struct file的資料成員,struct vfsmount mnt的作用是指出該檔案...