结构体

为什么使用结构体?

     在没有结构体之前,数据的组织依靠的是:变量+数组,但是后来需要的变量多了,所含变量的数据类型也都有不同,而数组结局的问题中所需要变量的数据类型是一样的,此时结构体就能够解决这种数据类型不同的问题。

什么是结构体(关键词—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);
}