初学结构体易混淆的知识点,现在整理一下,直接看代码吧。
定义结构体时,一种是没有重定义符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