- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章节_结构体
第十四章
到目前为止我们学习了C 语言中的基本类型以及
派生类型(指针和数组).
C语言中由用户构造的三种数据类型为:
1用户定义类型(typedef):对已有的类型,另外说明
一个新的类型标识符
2结构体(struct):把具有相互关系的不同类型的数
据组成一个有机整体.
3共用体(union):又称联合体.使几种不同类型的变
量共用一段存储空间.
§14.1用typedef说明一种新类型名
C语言允许用typedef说明一种新类型名,形式为:
typedef 类型名 标识符;
其中:
类型名:前面已有定义的类型标识符.
标识符:用户定义标识符,用作新的类型名.
typedef其作用仅仅是用标识符来代表已经存在的类型名,
并未产生新的数据类型,原有类型名依然有效.
typedef int INTEGER;
该语句把一个用户命名的标识符INTEGER说明成了一个int 类
型的类型名.在此说明之后,可以用标识符INTEGER来定义整型
变量.例如:
INTEGER m,n; 等价于int m,n;
typedef char * CHARP;
CHARP p; 等价于: char *p ;
§14.2结构体类型
有时需要将不同类型的数据组合成一个有机的整体,以便
于引用。如:
一个学生有学号/姓名/性别/年龄/地址等属性
学号 :int num;
姓名:char name[20];
性别:char sex;
年龄:int age;
地址:int char addr[30];
这几个信息只有一起出现才会对我们有用,那么这了我们方便去
引用,可以将这几个信息合起来作为一个整体起名子为:student.
那么C语言中如何规定,如何使用?
一.结构体类型的说明
一般形式为:
struct 结构体标识名
{ 类型名1 结构成员表1;
类型名2 结构成员表2;
类型名3 结构成员表3;
:
类型名n 结构成员表n;
};
其中:
1 struct 是关键字,是结构体类型的标志.
2结构体标识名,结构成员表名都是用户定义的标识符.
3结构体标识名是可选项,在说明中可以不出现.
4每个结构成员表名中可含多个同类型的成员名.之间用
逗号隔开.
5结构体中的成员名可以和程序中的其他变量同名;
6不同结构体中的成员名也可以同名.
7结构体说明同样要以分号结尾;
如关于日期的结构体类型可以说明如下:
struct date
{ int year,month,day;};
结构体类型说明中的类型名1类型名n,不仅可以是
简单数据类型,也可以是构造类型,当然也可以是某种结构体类
型.当结构体说明中又包含结构体时,称为结构体的嵌套.
如一个学生的信息可以有,姓名,性别,出生日期,每门课成绩等,
struct student
{ char name[12];
char sex;
struct date birthday;
float sc[4];
};
如果struct date 结构体类型前面没有定义,也可以改写为:
struct student 1标准的C规定结构体至少允许
{ char name[12]; 嵌套15层,并且允许内嵌套结构体
char sex; 成员的名字与外层成员的名字相同
struct date 2结构体类型说明只是列出了该
{int year;
结构的组成情况,标志这种结构已
int month;
int day; 存在,编译程序并没有因此而分配
} birthday; 任何存储空间.真正占有存储空间
文档评论(0)