结构体相关知识

问题实例:

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

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

复制单个成员的内容

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

复制结构体所有成员

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

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

posted @ 2020-04-27 23:22  与谁  阅读(187)  评论(2编辑  收藏  举报