• 结构体相关知识


    问题实例:

    录入一份图书目录,包含图书的价格,作者姓名以及书名。(下文以解决该问题的过程来解释结构体相关知识,参考C primer plus_p439)

    1.定义结构体变量

    struct book {   /*先定义结构体类型,再定义结构体变量*/                      struct book {/*在定义结构体类型的同时定义结构体变量*/
        char title [N];                                                         char title [N];
        char author [N];                                                        char author [N];
        float value;                                                            float value;
    };                                                                       }library;
    struct book library;
    

    访问结构体成员是用.运算符 ,例:library.value

    2.定义结构体数组

    struct book {   /*先定义结构体类型,再定义结构体变量*/                      struct book {/*在定义结构体类型的同时定义结构体变量*/
        char title [N];                                                         char title [N];
        char author [N];                                                        char author [N];
        float value;                                                            float value;
    };                                                                       }library[num];
    struct book library[num];
    

    访问结构体成员是用.运算符 ,例:library[n].value
    辨析:

    library                   //一个book结构的数组
    library[2]                //一个数组元素,该元素为book类型
    library[2].title          // 一个char类型数组(library[2]的title成员)
    library.[2].title[4]      //数组中library[2]元素的title成员的一个字符
    

    3.嵌套结构:可以使用结构体的嵌套来解决一些问题。(访问时使用两个.运算符即可)

    4.结构体指针

    struct book * thebook    //声明结构体指针
    thebook = &library;//指向结构体变量的指针
    
    thebook = &library[0];等价于 thebook = &library  //指向结构体数组首地址的指针
    thebook++;  //访问下一个结构体数组成员
    thebook->value  //访问成员
    

    5.向函数传递结构体

    向函数传递结构体单个成员

    复制单个成员的内容

    向函数传递结构体的完整结构

    复制结构体所有成员

    向函数传递结构体的首地址

    仅复制一个地址
    其他特性:同类型的结构变量可以直接赋值。

  • 相关阅读:
    IE浏览器下ajax缓存导致数据不更新的解决方法
    .NET C# Tostring format 格式化字符串
    解决jquery.validate.js的验证bug
    jquery中attr和prop的区别
    Jquery操作下拉框(DropDownList)实现取值赋值
    【MVC】自定义Scaffold Template
    【HTML5+MVC4】xhEditor网页编辑器图片上传
    回归与梯度下降法及实现原理
    浅谈强化学习的方法及学习路线
    【OpenCV学习笔记之一】图像加载,修改及保存
  • 原文地址:https://www.cnblogs.com/wangmou-233-1024-com/p/12791034.html
Copyright © 2020-2023  润新知