c语言---struct

今天打C语言突然发现struct都不会用了,实话说struct我是一直蒙的,今天2018/1/9,好好解读一下这struct。
 
在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
//struct为结构体关键字,Mark为结构体的标签,member为结构体成员,Variable为该结构体声明的变量
struct Mark{
  member;
} Variable;

struct 标签{
  成员;
}变量名;

一般情况下,Mark、member、Variable这三个部分至少要出现两个。

//此声明声明了拥有3个成员的结构体,同时声明了结构体变量data。
struct{
  int day;
  int month;
  int year;
}data;

//此声明声明了和成员上面一样的结构体,但是没有声明变量,但结构体的标签被命名为Data。
struct Data{
  int day;
  int month;
  int year;
};
//如果要声明变量,通过如下方式:
struct Data d1,d2[10],*d3;

//用typedef创建新类型
typedef stuct{
  int day;
  int month;
  int year;
}Data;
//可以用下面方式声明变量
Data d4,d5[10],*d6;
结构体成员访问
结构体成员依据结构体变量类型的不同,一般有2种访问方式,一种为直接访问,一种为间接访问。直接访问应用于普通的结构体变量,间接访问应用于指向结构体变量的指针。
直接访问使用  结构体变量名.成员名
间接访问使用  (*结构体指针名).成员名
或者  使用  结构体指针名->成员名
相同的成员名称依靠不同的变量前缀区分。
 
参考:https://zh.wikipedia.org/wiki/%E7%BB%93%E6%9E%84%E4%BD%93_(C%E8%AF%AD%E8%A8%80)
原文地址:https://www.cnblogs.com/glasses/p/8251010.html