菜鸟教程c语言结构体,C 结构体

结构体数组

一个结构体变量中可以存放一组数据(如一个学生的学号,姓名,成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。结构体数组与以前介绍过的数据值型数组不同之处在于每个数组元素都一个结构体类型的数据,它们分别包括各个成员(分量)项。

定义结构体数组

和定义结构体变量的方法相仿,只需说明其为数组即可。

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];

结构体数组的初始化

与其它类型数组一样,对结构体数组可以初始化如:

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[] = {{...},{...},{...}};

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

从以上可以看到,结构体数组初始化的一般形式是在定义数组的后面加上:

结构体数组应用举例

下面例子说明结构体数组的定义和引用。

#include

#include

#include

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

更多内容参考:C 结构体详解

js

js

824***808@qq.com3年前 (2018-10-20)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值