- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第13章结构体与共用体
第十三章 结构体与共用体;13.1 结构体类型变量的定义和引用;有三种形式定义结构体类型的变量
(1)先定义结构体类型,再定义结构体类型变量:
struct stu / *定义学生结构体类型* /
{ char name[20]; / * 学生姓名* /
char sex; / * 性别* /
long num; / *学号* /
float score[3]; / * 三科考试成绩* /
};
struct stu student1,student2;/ * 定义结构体类型变量* /
struct stu student3,student4;
用此结构体类型,可以定义更多的该结构体类型变量。;(2)定义结构体类型同时定义结构体类型变量:
struct data
{ int day;
int month;
int year;
} time1,time2;
也可以再定义如下变量:
struct data time3,time4;
用此结构体类型,同样可以定义更多的该结构体类型变量。;(3)直接定义结构体类型变量:
struct
{ char name[20]; / *学生姓名* /
char sex; / *性别* /
long num; / *学号* /
float score[3]; / *三科考试成绩* /
} person1,person2; / *定义该结构体类型变量* /
该定义方法由于无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。 ;引用的形式为:结构体类型变量名 . 成员名
若定义的结构体类型及变量如下:
struct data
{ int day;
int month;
int year;
} time1,time2;
则变量time1和time2各成员的引用形式为:
time1.day、time1.month、time1.year及time2.day、
time2.month、time2.year。
其结构体类型变量的各成员与相应的简单类型变量使用方法完全相同。 ;结构体类型变量的定义和初始化为:
struct stu / *定义学生结构体类型* /
{ char name[20]; / * 学生姓名* /
char sex; / * 性别* /
long num; / *学号* /
float score[3]; / * 三科考试成绩* /
};
struct stu student={liping,f,970541,98.5,97.4,95};
上述对结构体类型变量的三种定义形式均可在定义时初始化。 ;结构体类型变量完成初始化后,即各成员的值分别为:
student.name=liping、student.sex=f、student.num=970541、student.score[0]=98.5、student.score[1]=97.4、student.score[2]=95。
其存储在内存的情况如图:;[例13.1]外部结构变量初始化。
struct stu /*定义结构*/
{ int num;
char *name;
char sex;
float score;
} boy2,boy1={102,Zhang ping,M,78.5};
main( )
{ boy2=boy1;
printf(Number=%d\nName=%s\n”,boy2.num,boy2.name);
printf(Sex=%c\nScore=%f\n”,boy2.sex,boy2.score);
};[例13.2]给结构变量赋值并输出其值。
main( )
{ struct stu
{ int num;
char *name;
char sex;
float score;
} boy1,boy2;
boy1.num=102; boy1.name=Zhang ping;
printf(input sex and score\n);
scanf(%c %f,boy1.sex,boy1.score);
boy2=boy1;
printf(Number=%d\nName=%s\n”,boy2.num,boy2.name);
printf(Sex=%c\nScore=%f\n,boy2.sex,boy2.score);
};C允许定义嵌
文档评论(0)