1.结构数组
当然和c语言固有的int,float,double一样,一旦我们声明了一个结构类型之后,我们也可以做出这种结构类型的变量,我们也可以做出这种结构类型的数组.这里就是一个结构类型数组的例子:
我们来看看具体的程序:
我们先定义了一个timeupdate函数,它的参数是一个struct time变量,它的返回类型也是一个s t变量.在main函数,我们先做了一个s t数组并把里面的每一个结构体初始化.然后我们再对这个数组做一个遍历.我们每一次都对一个数组单元,即一个结构体变量做输出,把它所有的成员变量输出,然后再通过调用t u函数,把它的返回值赋给这个结构体变量,最后再输出这个被赋予新值的结构体变量的每一个成员.
然后再说这个函数做了什么,这个函数分为三个部分,这三个部分的结构和做的事情都是类似的.首先是now的一个成员变量seconds自加,然后第一个if做的事情是判断seconds是否等于60,是的话让该成员等于0,然后让minutes++.否的话就什么都不做.即这个函数做的事情是返回一秒钟之后的时间.
2.结构中的结构
如果我们之前就声明过两个结构体,那么我们可以再声明一个包含这两个结构体的结构体.
我们把这个叫做嵌套的结构,我们再来看一下:
即:
这个东西可以组合起来以后啊,人类组合东西的能力是没有止境的.所以我们有结构,有数组,我们可以做数组的数组,数组的结构,结构的结构,结构的数组......
再比如,我们来看一下结构中的结构的数组:
我们直接来看倒数第三行.有三层大括号,最里层大括号表达的是p1的成员变量x和y,中间一层表示数组的单元,也就是那个point结构,最外层表示的是rectangle这个结构.
总的来说这不难,这这这只是说它复杂了,它的层次多了,它的属性多了,但是呢,它没有超出我们之前所学的那些东西的范围.