结构体
为什么使用结构体?
在没有结构体之前,数据的组织依靠的是:变量+数组,但是后来需要的变量多了,所含变量的数据类型也都有不同,而数组结局的问题中所需要变量的数据类型是一样的,此时结构体就能够解决这种数据类型不同的问题。
什么是结构体(关键词—struct)?
结构体是一个集合,集合中包含很多元素,这些元素的数据类型可以相同,也可以不同,所以 结构体是一种数据封装的方法,以至于组成一个大而新的数据类型。
数据结构:把庞大复杂的数据用一定的方式组织管理起来,便于操作(查找,增加,删除等)。
结构体和数组的关联
数组是一种特殊的结构体,特殊之处在于数组封装内的各个元素类型是相同的。
结构体和数组都是对一些子元素进行封装,因此定义的时候都是封装作为整体定义,但是用的时候,都是使用封装中的子元素。一般结构体变量和数组变量都不会作为一个整体操作。
结构体使用的步骤
第一步:定义结构体类型,在函数的外面进行定义(也就是全局)。
第二步:使用第一步定义的类型来定义结构体变量。
第三步:使用变量,实际上是使用结构体变量的时候,使用的是结构体变量中封装的各个子元素,而不是结构体变量本身。
结构体初始化
结构体变量和普通变量一样,作为局部时,定义的时候没有初始化也没有显示赋值,那么结构体变量中各元素的值是随机的。
第一种:完全初始化(X, X, X, X);
第二种:部分初始化
{
.a = x;
.b = x;
.c = x;
}
例如:
#include"stdiio.h"
struct Mystruct//定义一个结构体Mystruct
{
//添加不同类型的元素
int a;
char b;
float c;
double d;
};//此处的;不能丢
ina main()
{
Mystruct s;//定义变量s,类型是struct Mystruct
//给结构体里面的元素赋值
s.a = 1;
s.b = 'a';
s.c = 3.141;
s.d = 3.141592;
s.a += 1;
printf("s.a = %d\n", s.a);
s.b = 'y';
printf("s.b = %c\n", s.b);
}