博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构体数组
阅读量:5158 次
发布时间:2019-06-13

本文共 1787 字,大约阅读时间需要 5 分钟。

5 结构体数组
  一个结构体变量中能够存放一组数据(如一个学生的学号,姓名,成绩等数据)。假设有10个学生的数据须要參加运算,显然应该用数组,这就是结构体数组。结构体数组与曾经介绍过的数据值型数组不同之处在于每一个数组元素都一个结构体类型的数据,它们分别包含各个成员(分量)项。
5.1 定义结构体数组
  和定义结构体变量的方法相仿,仅仅需说明其为数组就可以。
  struct student
  {
    int num;
    char name[20];
    char sex;
    int age;
    float score;
    char addr[30];
  };
  struct student stu[3];
  以上定义了一个数组 stu,其元素为 struct student 类型数据,数组有 3 个元素。也能够直接定义一个结构体数组。如:
  struct student
  {
    int num;
    ....
  }stu[3];
  struct
  {
    int num;
    ...
  }stu[3];
5.2 结构体数组的初始化
  与其他类型数组一样,对结构体数组能够初始化如:
  struct student
  {
    int mum;
    char name[20];
    char sex;
    int age;
    float score;
    char addr[30];
  }stu[3] = {
{10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"},
        {10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"},
        {10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"}};
  定义数组 stu 时,元素个数能够不指定,即写成下面形式:
  stu[] = {
{...},{...},{...}};
编译时,系统会依据给出初值的结构体常量的个数来确定数组元素的个数。
  当然,数组的初始化也能够用下面形式:
  struct student
  {
    int num;
    ...
  };
  struct student stu[] = {
{...},{...},{...}};
即先声明结构体类型,然后定义数组为该结构体类型,在定义数组时初始化。
  从以上能够看到,结构体数组初始化的一般形式是在定义数组的后面加上:
5.3 结构体数组应用举例
  以下样例说明结构体数组的定义和引用。
#include <stdio.h>
#include <string.h>
#include <stlib.h>
struct person
{
  char name[20];
  int count;
}leader[3] = {
{"Li", 0},
       {"Zhang", 0},
       {"Fun", 0}};
void main()
{
  int i, j;
  char leader_name[20];
  for(i = 1; i<= 10;i++)
  {
    scanf("%s", leader_name);
    for(j=0;j<3;j++)
      if(strcmp(leader_name, leader[j].name) == 0)
        leader[j].count ++;
  }
  printf("\n");
  for(i=0;i<3;i++)
    printf("%5s: %d\n", leader[i].name, leader[i].count);
  system("pause");
}
执行结果例如以下:
LI
Li
Fun
Zhang
Zhang
Fun
Li
Fun
Zhang
Li
   Li: 3
Zhang: 3
  Fun: 3

转载于:https://www.cnblogs.com/blfshiye/p/4374693.html

你可能感兴趣的文章
jquery中的$("#id")与document.getElementById("id")的区别
查看>>
JZOJ5771 遨游
查看>>
使用线程池测试cpu的并发计算能力
查看>>
C++Primer第五版——习题答案详解(一)
查看>>
Running an etcd cluster on localhost
查看>>
Android Spinner,下拉菜单的功能和用法
查看>>
Proteus中MATRIX-8X8 LED灯的连接
查看>>
第10章 文档对象模型DOM 10.1 Node节点类型
查看>>
有时候用having count(*) > xx 挺好
查看>>
输入的是util包下面的 时间, 接受的是java.sql.date 或者 java.util.date类型
查看>>
火眼推出Windows免费渗透测试套件,包含140多款工具
查看>>
docker--容器和镜像的导入导出及部署
查看>>
Maven项目结合POI实现导入导入导入导入导入Excl表格Demo-亲测可用
查看>>
每日总结5:
查看>>
SQL Server 触发器
查看>>
[Excel] Worksheet.PasteSpecial
查看>>
Python简单实现邮件群发
查看>>
better-scroll不能滚动之 滚动监听-左右联动
查看>>
消失在技能栏里的安装技能
查看>>
解决MFC对话框类不能建立成功的方法(出现 unable to open the files)
查看>>