最新c语言程序设计第10章课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【例9.6】编写一个统计选票的程序。
struct candidate
{ char name[20]; /* name为候选人姓名 */
int count;
/* count为候选人得票数 */
} list[ ]={{"invalid",0},{"Zhao",0},{"Qian",0},
{"Sun",0},{"Li",0},{"Zhou",0}};
c语言程序设计第10章课件
第9章 结构体与共用体
2
9.1 结构体 9.2 共用体 9.3 枚举类型与类型命名
2021/2/13
9.1 结构体
9.1.2 结构体变量的定义与初始化
1. 结构体类型变量的定义
直接定义结构体类型变量 struct
{ 成员定义表; }变量名表; 例如:
struct { char num[8],name[20],sex;
int age; float score; }st[30], a, b, c;
9
2021/2/13
9.1 结构体
10
9.1.2 结构体变量的定义与初始化
2. 结构体变量的初始化
【例9.4】结构体变量的初始化。
struct date
如果初值个数少于结构体成员个数,
{ int year, mont则h,将d无ay初;}值; 对应的成员赋以0值。
元素的个数可以省略,根据赋初值时 结构体常量的个数确定数组元素的个数
2021/2/13
9.1 结构体
12
9.1.2 结构体变量的定义与初始化
3. 结构体变量的运算
用sizeof运算符计算结构体变量所占内存空间
struct date { int year, month, day;}; struct student { char num[8], name[20], sex;
a.birthday.year a.birthday.month a.birthday.day
结 构 体 变 量 a 的 各 成 员 可 分 别 表 示 为 a.num、 a.name、a.sex、a.birthday、a.score
2021/2/13
9.1 结构体
16
9.1.2 结构体变量的定义与初始化
2021/2/13
9.1 结构体
11
9.1.2 结构体变量的定义与初始化
2. 结构体变量的初始化
【例9.5】结构体数组的初始化。 struct s { char num[8],name[20],sex; float score; }stu[3]={{"9606011","Li ming",'M',87.5}, {"9606012","Zhang jiangguo",'M',79}, {"9606013","Wang ping",'F',90}};
c = a;
结构体变量之间进行赋值时,系统将按成员一一对应赋值。
2021/2/13
9.1 结构体
14
9.1.2 结构体变量的定义与初始化
3. 结构体变量的运算
对结构体变量进行取址运算
struct date { int year, month, day;}; struct student { char num[8], name[20], sex;
2021/2/13
9.1 结构体
17
9.1.2 结构体变量的定义与初始化
main( )
{ int i,n;
printf("Enter vote\n");
scanf("%d",&n); /* 输入所投候选人编号,编号从1开始 */
while (n!=-1)
/* 当输入编号为-1时,表示投票结束 */
}
2021/2/13
9.1 结构体
18
9.1.2 结构体变量的定义与初始化
for (i=1; i<=5; i++) printf("%s:%d\n",list[i].name,list[i].count);
struct date { int year, month, day;}; struct student { char num[8], name[20], sex;
struct date birthday; float score; }a={"9606011","Li ming",'M',{1977,12,9},83},b,c;
{ if (n>=1 && n<=5)
list[n].count++; /* 有效票,则相应候选人计票成员加1 */
else
{ printf("invalid\n");
list[0].count++; } /* 无效票,list[0]的计票成员加1 */
scanf("%d",&n); /* 输入所投候选人编号 */
struct date birthday; float score; }a;
对结构体变量a进行 &a 运算,可以得到a的 首地址,它是结构体类型指针。
2021/2/13
9.1 结构体
15
9.1.2 结构体变量的定义与初始化 “.”是分量
4. 结构体变量成员的引用
运算符,运算
级别最高。
结构体变量成员引用的一般形式:
struct date birthday; float score; }a;
sizeof(a) 的结果为8+20+1+6+4=39 sizeof(struct student) 的结果为39
2021/2/13
9.1 结构体
13
9.1.2 结构体变量的定义与初始化
3. 结构体变量的运算
同类型结构体变量之间的赋值运算
Hale Waihona Puke Baidu结构体变量名.成员名
struct date { int year, month, day;}; struct student
结构体变量的各个成员可 进行何种运算,由该成员
的数据类型决定
{ char num[8], name[20], sex; struct date birthday; float score; }a;
struct student
如果初值个数多于结构体成员个数,
则编译出错。
{ char num[8], name[20], sex;
struct date birthday;
float score;
}a={"9606011","Li ming",'M',{1977,12,9},83},
b={"9608025","Zhang liming",'F',{1978,5,10},87},c;
相关文档
最新文档