C语⾔:Structures结构体
学⽣党,课堂笔记加知识整理。若有不⾜勿喷! 。
什么是结构体?
使⽤结构体的⼏种例⼦。
定义⼀个结构体。
声明⼀个结构体。
调⽤成员。
复合结构体 ( Nested structures )
数组和结构体 ( Arrays of structures & Array inside structures )
题⽬中使⽤结构体。
PS. 补充关于union ,并将其与 structures ⽐较。
什么是结构体?
结构体,是⼀个可以储存 不同类型 数据项的集合( collection )。
结构体类型,在C语⾔,⽤ struct 表⽰。
与 array ( 数组 )相⽐,数组的数据是 homogenous (同类的),structures 是可以 heterogeneous (各种类型的)。
⽤使⽤结构体的⼏种例⼦,加深理解。
c语言struct头文件当进⾏学⽣信息录⼊的时候,我们会需要id ,name ,gender ,major ,start year 等等信息,⽽这些信息,有的是 int 类型, 有的是string 类型 等等,这时就需要使⽤结构体,把这⼀个学⽣的信息放在⼀个结构体中更好的录⼊。同样的,在银⾏中, 关于⼀个客户的银⾏账户信息 , 图书馆中, ⼀本书的信息 等等,都会⽤到结构体的概念。
下⾯就让我们⼀起了解⼀下如何写结构体吧~
定义⼀个结构体。
struct<struct-type>
{
<type><identifier_list>;
<type><identifier_list>;
...
};
//⼀定要注意,结构体最后有⼀个“ ;”。
每⼀个 identifier 定义了⼀个结构体成员。
具体实例:
//Ex.1
struct Date
{
int day;
int month;
int year;
};
St2:
//调⽤⽅法。
<struct-vatiable>.<member_name>;
具体实例:
//仍旧是之前所声明定义过的 struct StudentGrade 类。
//这⾥我就以St1 为例,只写 main 函数⾥的吧~
strcpy(Str1.Name," Xiao Xin ");
strcpy(Str1.Course," Programming in C ");
Str1.Lab=100;
Str1.Homework=100;
Str1.Exam=100;
//当然如果只是想初始化的话可以
struct StudentGrade Str3={" Xiao xin "," Programming in C ",100,100,100};
**既然都到这⾥了,不⽤Str2岂不是辜负了它!**已经有了Str1,⼜懒于编数据,那我们可以⽤struct-to-struct 去定义Str2。//很简单的⼀句
Str2=Str1;
//Str1 的内容就被完美复制给了 Str2,很棒吧。
Nested structures
哼,话不多说,来,上例⼦:
struct point
{
double x,y;//⼀个point中有两个坐标值 x 和 y
}P;
struct line
{
struct point p1,p2;//struct不能忘!⼀条线是两个点。需要两个不同的坐标点
}L;
struct triangle
{
struct point p1,p2,p3;//struct不能忘!三⾓形是三个点,需要三个不同的坐标点
}T;
//赋值⽅法
int main()
{
P.x=100;
P.y=100;
L.p1.x=P.x;
L.p2.x=P.y;
//T同L。
}
⽤图⽚表⽰就是:(以下图⽚来⾃最帅⽼师的ppt)
Arrays of structures & Array inside structures
Arrays of structures
Arrays inside structures
这⾥决定使⽤那个三⾓形的例⼦:
PTA 中关于结构体的题⽬通讯录排序:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。