当前位置:C++技术网 > 精选软件 > C++ Primer Plus 6th 4.12 复习题 第9题 结构体变量的声明并初始化

C++ Primer Plus 6th 4.12 复习题 第9题 结构体变量的声明并初始化

更新时间:2019-03-05 14:45:49浏览次数:1+次

C++ Primer Plus复习题4.12 第9题  结构体变量的声明并初始化

题目:
9.声明一个问题8中定义的结构的变量,并对它进行初始化。

答案:
fish petes = {
    "trout",
    12,
    26.25
};

C++技术网辅导详解解答:
    我们在第8题中已经定义了存储鱼的结构体类型fish,如下:

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

    现在的任务是要用我们定义出来的结构体类型fish来声明并初始化一个变量。结构体类型变量的声明和初始化和数组的语法比较类似。只是在赋值的时候,要根据对应的元素给予正确类型的值,而且顺序要和定义的一样。

    第一个元素是一个数组,所以在初始化数组的时候,我们可以直接给一个字符串常量。对于整数和小数,则更是简单了。
    需要注意的是,我们这里是对结构体变量进行初始化,也就是说,对结构体类型内的数组元素也都是初始化操作,对于结构体类型里的所有元素都是初始化。那么在初始化每一个元素时要按照每种基础类型的初始化规则来初始化哦。
    同理,对于结构体变量的赋值,也是对每一个元素的类型来赋值。所以,对于字符数组元素,我们赋值的时候,要么对数组里单个元素直接赋值或者循环赋值。
    那么我们现在来体会一下结构体:结构体像是一个箱子,将各种基本元素包装在一起,形式类似于数组。不过有点在于可以容纳各种不同的类型的变量,而且可以自己设计各个元素的存放位置以及元素的个数。非常灵活。而对于内部元素的操作,也都是遵从元素自身的类型来操作的。只要用结构体变量取出来元素,就等同于直接操作这个元素,与同类型的直接声明的变量一样的操作。
    结构体在实际开发中,应用是非常广泛的,正是因为其灵活方便的特性,弥补了基础数据类型的不足,我们叫数据结构这种类型为复合类型,因为它将多种数据类型都合在一起了。数组以为存储的都是同一类数据,所以不能成为复合类型。
    好了,更多的体会,需要在实践中获得哈。