zoukankan      html  css  js  c++  java
  • 结构体相关知识

    问题实例:

    录入一份图书目录,包含图书的价格,作者姓名以及书名。(下文以解决该问题的过程来解释结构体相关知识,参考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.向函数传递结构体

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

    复制单个成员的内容

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

    复制结构体所有成员

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

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

  • 相关阅读:
    学习进度表
    mysql实现跨库查询
    jmeter分布式(1台Windows,一台Mac,亲测可用互相使用)
    解决appium 连接真机Android 9启动报错.....shell "ps 'uiautomator'
    使用fiddler抓包修改请求/返回的数据
    adb 获取当前界面activity
    使用adb 命令获取APP包名
    jmeter实现登录并设置token为全局变量
    python3 SystemError: Parent module '' not loaded, cannot perform relative import
    adb 运行提示error: cannot connect to daemon
  • 原文地址:https://www.cnblogs.com/wangmou-233-1024-com/p/12791034.html
Copyright © 2011-2022 走看看