A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

结构体的基本使用

1.     我们前面学习了很多种的数据类型


     int
     double
     float
     char
     数组
     指针
     ……
     不同的数据类型的变量是用来保存不同类型的数据的。


     请声明1个变量,用来保存1个人的年龄。
     unsigned char age = 18;
     因为一个人的年龄不可能是负数,最多也就200岁,所以不需要申请太多的空间,也就是不需要用int 来声明,完全可以用一个正数的一个字节的变量来存储即可。




2.     如何保存同时保存多个不同的数据类型。使用结构体来创建新的数据类型,用来保存不同类型的数据。
    例:
          保存一个学生的信息
          包括:
               学生姓名
               学生身高
               学生体重
               学生成绩
               ……


3.     结构体类型变量的定义

     1)如何使用结构体来创建新的数据类型呢?
          语法格式:
          struct 新类型的名字
          {
               //  在这里面写上,你创建的新类型是由哪些变量联合而成。
               //     我们也通常叫做结构体的成员!

               数据类型1 小变量名称1;
               数据类型2 小变量名称2;
               数据类型3 小变量名称3;
          };


          例:
               struct Student
               {
                    char *name;
                    int age;
                    int score;
                    float height;

               };
          代表我们新创建了1个数据类型,这个数据类型的名称叫做:struct Student。
          这个新的类型是由 1个char*、int、int、float的小变量联合而成的!



4.     结构体类型变量的声明


     1)我们使用结构体仅仅是创建了1个新的类型而已,并没有变量。
          而结构体的作用:是在指定的新的数据类型是由哪些小变量组合而成的。
     2)所以我们还要声明新类型结构体类型的变量。
          语法格式:
          struct 新类型名称 变量名;
          struct Student stu;
     代表声明了1个struct Student类型的变量,变量的名字叫做stu!
     这个时候stu才是变量,才会在内存中申请空间。
     这个变量中,是由这个新的结构体类型规定的小变量组合而成的。
     这个结构体答辩了是由结构体类型规定的小变量组合而成的!
     3)注意:
               struct Student stu;
          这个时候stu结构体变量的类型是struct Student。而不是Student!

5.     结构体类型变量的初始化

     1)意义:
               为结构体变量中的小变量赋值!
     2)初始化的语法:
               结构体变量名称.成员名 = 数据;



代码:
          //     定义一个结构体类型
          struct Student
               {
                    char *name;
                    int age;
                    int score;
                    float height;


               };
          //     结构体类型变量的声明
          struct Student stu;
          //     结构体类型变量的初始化
          stu.name = “Jack”;
          stu.age = 18;
          stu.score = 100;
          stu.height = 189.8;
          //     输出学生信息
          printf(“姓名:%s\n年龄:%d\n成绩:%d\n身高:%。2f\n”,                  
          stu.name,
          stu.age,
          stu.score,
          stu.height
                   );


6.     什么时候要定义一个结构体


     当我们要保存1个数据。但是发现这个数据是一个大数据,因为这个数据是由其他的小数据联合起来组成的。
     那么这个时候,
     先使用结构体类自定义这个数据类型由哪些小变量合成的。然后再根据这个结构体类型声明变量来保存数据。



7.     使用结构体需要注意的小问题


     1)一定要先使用结构体定义新的类型
          然后才可以根据这个类型     声明这个类型的变量
     2)结构体变量是1个变量,所以也可以像普通变量一样批量声明。
          例:
    struct Student xiaoHua,Jack,Rose,lilei;


    3)结构体名称的命名规范:要求每一个单词的首字母要大写!
     4)结构体类型定义的同时,去声明这个结构类型的变量。
          例:         
               struct Student
               {
                    char *name;
                    int age;
                    int score;

                    float height;

               }stu,jack,rose,lilei;


     5)匿名结构体!
          就是这个结构体类型没有名称!

          例:              
               struct
               {
                    char *name;
                    int age;
                    int score;

                    float height;


               }stu,jack,rose,lilei;
          此时这个结构体就是我们的匿名结构体。而匿名结构要想声明这个类型的变量,那就必须在这个匿名结构体变量定义的同时去声明这个类型的变量。它是不能单独去声明这个类型的变量的。

3 个回复

倒序浏览
回复 使用道具 举报
我也真理了。。。
回复 使用道具 举报
will123 发表于 2016-9-21 22:51
我也真理了。。。

加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马