十章结构体与共用体课件教学讲义.ppt 立即下载
2024-12-03
约5.8千字
约40页
0
608KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

十章结构体与共用体课件教学讲义.ppt

十章结构体与共用体课件教学讲义.ppt

预览

免费试读已结束,剩余 35 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第十章结构体与共用体10.1概述
为了将不同类型的数据组合成一个有机的整体,以便引用。C语言提供了一种数据结构,叫结构体(structure)。
结构体类型声明的一般形式:
struct结构体名
{
成员表列
};方法三、直接定义结构类型变量,
struct
{
成员表列
}变量名表列;
例如定义结构体类型变量的几点说明:
1.只能对结构体类型变量赋值、存取、运算等。而不能对结构体类型赋值、存取、运算等。例如

2.结构体变量中的成员如同普通变量一样,可以单独使用。例如
二、引用时注意事项:例10.1(p264)
structstudent
{longintnum;
charname[20];
charsex;
charaddr[20];
}a={89031,“LiLin”,‘M’,“123BeijingRood”};
voidmain()
{
printf(“No.:%ld\nname:%s\nsex:%c\naddress:%s\n”,
a.num,a.name,a.sex,a.addr);
}10.5结构体数组
所谓结构体数组,即构成数组的每一个元素都是一个结构体类型的数据。
一、结构体数组的定义
1.structstudent
{intnum;
charname[20];
charsex;
intage;
floatscore;
charaddr[30];
};
structstudentstu[3];103BeijingRoad二、结构体数组的初始化
structstudent
{intnum;
charname[20];
charsex;
intage;
floatscore;
charaddr[30];
}stu[3]={{10101,“LiLin”,‘M’,18,87.5,“103
BeijingRoad”},{10102,“ZhangFun”,‘M’,
19,95,“130ShanghaiRoad”},{10101,
“WangMin”,‘F’,20,78,“1010Zhongshan
Road”}
};例10.2(p266)
structperson
{charname[20];
intcount;
}leader[3]={“Li”,0,“Zhang”,0,“Fun”,0};
main()
{inti,j;
charleader_name[20];
for(i=0;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,leaer[i].count);
}
运行结果:Li:4
Zhang:3
Fun:310.6指向结构体类型数据的指针
一、指向结构体变量的指针
结构体变量的指针就是结构体变量所占内存段的起始地址。存放该地址的变量叫指向结构体变量的指针变量,简称指向结构体变量的指针。
比如:
structstudent*p;例10.3(p268)
main()
{
structstudent
{longintnum;
charname[20];
charsex;
floatscore;
};
structstudentstu_1;
structstudent*p;
p=&stu_1;
stu_1.num=89101;
strcpy(stu_1.name,“LiLin”);
stu_1.sex=‘M’;
stu_1.score=89.5;printf(“No.:%ld\nname:%s\nsex:%c\nscore:%f\n”,stu_1.num,stu_1.name,stu_1.sex,stu_1.score);
printf(“\nNo.:%ld\nname:%s\nsex:%c\nscore:%f\n”,(*p).num,(*p).name,(*p).sex,(*p).score);
}
运行结果:
No.:89101No.:89101
name:LiLinname:LiLin
sex:Msex:M
score:89.500000score:89.500000说明:
1.程序中(*p)表示p指向的结构体变量。(*p).num表示p指向的结构体变量中的成员num。第一个printf是直接访问,第二个printf是间接访问。
2.(*p).num等效于p–>num
–>表示指向结构体成员运算符。
3.结构体变量中成员的引用有三种形式:
(1)结构体变量.成员名;
(2)(*p).成员名;
(3)p–>成员名;
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

十章结构体与共用体课件教学讲义

文档大小:608KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用