初學結構體易混淆的知識點,現在整理一下,直接看代碼吧。
定義結構體時,一種是沒有重定義符typedef,聲明時都必須加struct關鍵字;(如方法1)
一種是直接在結構體后聲明變量名,可以直接用作變量。(如方法2、3)。
初始化結構體時,一種是先聲明,再初始化(如方法1)
一種是在定義的后面聲明變量后直接初始化(如方法2、3)。
/*************定義結構體三種方法**************/ struct PersSon { int age; char name[20]; }PersSon;//定義結構體 方法1,定義類型,聲明時必須加struct typedef struct PersSon1 { int age; char name[20]; }PersSon1;//重定義結構體 類型,聲明時不需加struct struct PersSon2 { int age; char name[20]; }s1,s2; //定義結構體 方法2,定義類型時,定義變量s1、s2 struct { int age; char name[20]; }s3,s4; //定義結構體 方法3,匿名定義類型時,定義變量s3、s4 /************初始化結構體的三種方法***************/ struct PersSon { int age; char name[20]; }PersSon;//定義結構體 方法1,定義類型,聲明時必須加struct // 初始化結構體變量 方法1: struct PersSon p={16,"xiaodu"}; typedef struct PersSon1 { int age; char name[20]; }PersSon1;//重定義結構體 類型,聲明時不需加struct // 初始化結構體變量 方法1: PersSon1 p1={17,"xiaoli"}; struct PersSon2 { int age; char name[20]; }s1={12,"xiaoming"},s2={13,"xiaohong"}; //初始化結構體變量 方法2,定義類型時,定義變量並初始化s1、s2 struct { int age; char name[20]; }s3={14,"xiaoliang"},s4={15,"xiaoyang"}; //初始化結構體變量 方法3,匿名定義類型時,定義變量並初始化s3、s4