首页 > 代码库 > 结构体专题

结构体专题

===定义结构体的两种方法:=========================================

 

第一种:

struct 结构体名{
成员列表
}变量名列表;


第二种://省略了结构体名,直接定义结构体变量

struct{
成员列表
}变量名列表;

 

===举例:===========================================

 

第一种定义方法

(1)声明结构体类型

struct 高三班级 {

语文课代表

数学课代表

……

历史课代表

}

 

(2)定义结构体变量

struct 高三班级 高三1班 ,高三2班;

或者直接写成

struct 高三班级 {

语文课代表

数学课代表

……

历史课代表

}高三1班 ,高三2班;

 

(3)使用

 高三1班.语文课代表=XXX;

 高三1班.数学课代表=XXX;

......

--------------------------

第二种定义方法

(1)声明结构体类型

struct  {

语文课代表

数学课代表

……

历史课代表

}高三1班 ,高三2班;

 

(2)使用

 高三1班.语文课代表=XXX;

 高三1班.数学课代表=XXX;

===typedef用法============================================================

定义:申明新的内型名代替已有的内型名

也就是typedef ABCD  XYZ,这样XYZ就完全替代了ABCD了

------------------

typedef  struct  {       //注意此处不再有  高三班级(我也不知道为什么省略,采用了方式二定义?还是为了C语言的简洁?)

语文课代表

数学课代表

……

历史课代表

}   SBATNND

此时SBATNND就完全代替了整个结构体,直接定义变量

SBATNND  高三1班 ,高三2班;

就可以了,等价于

struct  {

文课代表

数学课代表

……

历史课代表}   高三1班 ,高三2班;

---------------------------------为什么就不能带结构体名字(高三班级)----------------------慢慢找原因

要不然也就等价于

struct 高三班级 高三1班 ,高三2班;

 SBATNND  就等价于 struct 高三班级

结构体专题