当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 4.12 复习题 第8题 结构体类型声明

C++ Primer Plus 6th 4.12 复习题 第8题 结构体类型声明

更新时间:2019-03-04 14:40:41浏览次数:1+次

C++ Primer Plus复习题4.12 第8题  结构体类型声明

题目:
8.设计一个描述鱼的结构声明。结构中应当包括品种、重量(整数,单位为盎司)和长度(英寸,包括小数)。

答案:
struct fish{
    char kind[20];
    int weight;
    float length;
};

C++技术网辅导详解解答:
    我需要强调一下结构体的概念。因为我们经常在谈论结构体的时候,容易将结构体和结构体变量混为一谈。很有必要在这里说一下。
    结构体:是一种数据类型,是一种可以自定义的数据类型。
    结构体变量:是用结构体这种数据类型来声明的一个变量。
    那么两者的差别自然就出来了,一个是数据类型,一个是具体的变量。
    本题的意思是让我们来设计一个结构体,即设计一个存储鱼的信息的数据类型。因为对于鱼的信息,这里要存储品种、重量、长度,而且三种信息单位不一样。
    从信息数量来讲,这里已经有三个了,对于基础数据类型(int、float、char等),一个变量只能存储一个信息。所以基础类型是不能满足了。那数组行不行呢?数组是可以存储多个元素的,不过需要注意的是,数组的所有元素的数据类型必须是一样的哦。而这里的数据类型分别是字符串、整数、小数,所以就没有办法用数组了。因而这里需要设计一个新的自定义的类型,来同时存储多个信息而且多个信息的基础数据类型不一样。能够自定的数据类型,那就是结构体了。
    所以我们要使用结构体来设计。所以答案说的是结构体,我们要知道为什么要用结构体,这样我们就可以将我们的学过的数据类型都进行一个比较,来选择一个合适的方式实现。
    知道是结构体了,那么结构体的定义,自然也就简单了。对于品种而言,自然需要用字符串来描述,比如草鱼、鲤鱼等。后面两个明确指定了类型,就分别用int和float就可以了。
    所以最终结果就是答案里设计的结构体了。最后需要强调的是,结构体是所有具体的结构体类型的统称,结构体类型定义后要指定一个名字,那么我们应该叫做结构体类型XXX,定义后的才是具体的可以用来声明变量的类型。我们这里就是定义了一个结构体类型fish。