zoukankan      html  css  js  c++  java
  • C语言第六节 结构体

    1、结构体定义

      • 结构体 也是一种构造数据类型,之前我们还学过的构造数据类型还有 枚举和数组;

      • 结构体和数组很像,都是聚合变量,都可以存放一组数据,但是数组只能存放相同数据类型的数据,而结构体可以存放不同数据类型的数据,并且数组中数据称为 元素,结构体中数据称为 成员。

      • 结构体的定义:

      • struct 结构体名 {

            类型说明符 成员名;

            ......

            };

    2、定义结构体的关键struct

    三种定义形式:

       1> 先定义结构体类型,再定义结构体变量;

        struct student{

            int number; //学号

            char name[20]; //姓名

            char gender; //性别

            int age; //年龄

            float score; //成绩

        };

        struct student stu = {"laowang", 'm', 25, 59.5};

        //变量名是 stu ;类型名是 struct student 

     

       2> 在定义结构体类型时,直接声明结构体变量;

        struct teacher{

            int number; //工号

            char name[20]; //姓名

            char gender; //性别

            int age; //年龄

            char position[20]; //职务

            float salary; //薪水

        }iOSTeacher = {12001, "chenqingyuan", 28, 'm', "jiangshi", 100};

        

       3> 匿名结构体,省略结构体名称,并且在定义结构体时,声明结构体变量;

        struct {

            char brand[20]; //品牌

            float price; //价格

            float volumn; //容量

            float weight; //重量

        }cup = {"fuguang", 10.0, 500, 100};

        */

     

    3、typedef重定义

      • 关键字typedef

         typedef <#type#> <#name#>

      • type是原有类型, name是新类型;

     

    4、访问结构体成员

      • 访问结构体成员使用 ‘.’ 操作符,可以认为 ‘.’ 就是 “的” 的意思;

      • 如果想要修改字符串(姓名、品牌、类型等等)不能直接赋值,需要使用字符串的拷贝函数 strcpy;

     

    5、结构体内存占用

    1> 先确定最大成员所占用的字节大小。以此为单位依次分配内存

    2> 每一个成员相对于首地址的偏移量,必须能不当前成员所占字节大小整除

    3> 结构体占用内存必须是最大成员所占字节的整数倍

     

    6、结构体嵌套

    既结构体中的成员也是结构体。

     

    7、结构体数组

    数组不能赋值,但是结构体可以直接赋值,所以我们可以将数组放到结构体中当作成员,来间接完成赋值。

     

  • 相关阅读:
    sphinx安装
    如何获取原生数据
    DOM详解
    JavaScript简单入门(补充篇)
    JavaScript的简单入门
    Java正则表达式练习
    Java反射机制(Reflect)解析
    21070118记
    CSS3设置Table奇数行和偶数行样式
    获取当前地址
  • 原文地址:https://www.cnblogs.com/hyl2012/p/5212791.html
Copyright © 2011-2022 走看看