1.6 C之 结构体、共用体、枚举、宏定义、预处理

1.结构体
为什么需要结构体?什么是结构体?变量+素组
在没有结构体之前,起初最简单的时候,只需要使用基本类型(int char float dooubt)来定义单个变量,需要几个变量就定义几个。后来情况复杂了,有时候需要意义相关的变量(比如需要存储一个班级的学生分数)这个时候数组就出现了。数组解决了需要很多类型相同、意义相关的变量的问题。但是数组是有限制的,数组最大的不足在于,一个数组只能存储多个数据类型相同的变量。所以碰到刚要封装几个类型不同的变量的时候,数组就无能为力了。这个时候就需要结构体。
什么是结构体?
结构体是一个集合,就是一种里面包含很多个元素,这些元素的数据类型可以相同,也可以不相同。所以结构体就是数据封装的方法。
include<stdio.h>
//1、结构体类型的定义是在函数外边,不是里面
//2、结构体定义的是一个新的组合类型,而不是变量,也不消耗内存

        struct  student
        {
            char name[20];          //学生姓名
            unsigned int num;      //学号
            int ismale;                  //性别
        };                                //这里注意还有一个;
        int main(void)
        {
            struct student s1;   //s1是一个变量,类型是struct student
            //给结构体变量赋值
            s1.name[0]='J';
            s2.name[1]='i';
            s3.name[2]='m';
            s4.name[3]='\0';

            s1.num  = 123 ;
            s1.ismale= 1 ;
            //打印检验
            printf("s1.name = %s,s1.num = %d,s1.ismale = %d.\n",s1.name,s1.num,s1,ismale);
            return 0;
        }

数据结构:把庞大复杂的数据用一定的方式组织管理起来,便于操作(查找,增加,删除等)这就叫数据结构。
结构体与数组关系:数组是一种特殊的结构体,特殊之处在于封装的各个元素类型相同。

使用结构体的步骤:
第一步:定义结构体类型。结构体类型的定义是在函数外面(函数外面==全局)。
第二步:使用第一步的类型来定义结构体变量。
第三步:使用变量。实际上使用结构体变量的时候,使用的是结构体变量中封装的各个子元素。

猜你喜欢

转载自blog.51cto.com/14762640/2485550