今天打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)