欢迎访问文稿网!

结构体数组的初始化

范文之家 分享 时间: 加入收藏 我要投稿 点赞

结构体数组的初始化

    10.2.2 结构体数组的初始化

    1.与其他类型的数组一样,对结构体数组可以初始化。结构体数组初始化的一般形式是在定义数组的后面加上“={初值表列};”。

    例如:

    img522

    定义数组stu时,元素个数可以不指定,即写成以下形式:

    stu[]={{…},{…},{…}};数组成员如图10-1所示。

    img523

    

    图10-1

    数组各元素在内存中连续存放。

    编译时,系统会根据给出初值的结构体常量的个数来确定数组元素的个数。一个结构体常量中全部成员的值。

    当然,数组的初始化也可以用以下形式:

    img524

    即先声明本类型,然后定义数组为该结构体类型,在定义数组时初始化。

    2.举一个简单的例子来说明结构体数组的定义和引用。

    【例10-2】对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出每个人的得票结果。

    程序如下:

    img525

    img526

    程序运行结果:

    img527

    程序定义一个全局的结构体数组leader,它有3个元素,每一个元素包含两个成员name(姓名)和count(票数)。在定义数组时使之初始化,使3位候选人的票数都先置零。

    在主函数中定义字符数组leader_name,它代表被选人的具体人名,然后把它与3个候选人姓名相比,看它和哪一个候选人的名字相同。注意leader_name是和结构体数组中的leader[j].name相比,leader[j]是结构体数组中的字符数组leader的第j个元素,它包含两个成员项,leader_name应该和leader数组第j个元素的name成员相比。若j为某一值时,输入的姓名与leader[j].name相等,就执行”leader[j].count++”,由于成员运算符“.”优先于自增运算符“++”,因此它相当于(leader[j].count)++,使leader[j]的成员count的值加1。在输入和统计结束之后,将3人的名字和得票数输出。

221381
领取福利

微信扫码领取福利

微信扫码分享