c语言自定义数据类型

c语言自定义数据类型

ID:8802004

大小:39.50 KB

页数:6页

时间:2018-04-08

c语言自定义数据类型_第1页
c语言自定义数据类型_第2页
c语言自定义数据类型_第3页
c语言自定义数据类型_第4页
c语言自定义数据类型_第5页
资源描述:

《c语言自定义数据类型》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、自定义数据类型结构体结构体是程序员在程序中自定义的一种数据类型,在说明和使用之前必须先定义它,也就是构造它。定义一个结构体的语法格式如下:Struct结构体类型名{成员1的数据类型名成员1名称;成员2的数据类型名成员2名称;..成员n的数据类型名成员n名称;}结构体变量表={成员初始化};注意成员可以由若干个不同的数据类型组成,每个成员也可以是结构体,即可以嵌套定义。例如:Structstudent{Longnum;Charname;Charsex;Floatscore;};已经定义的某种结构体类型可以视为一种标准的数据类型,它的使用方法与标准数据类

2、型使用方法相同,可以用来定义变量、数组、指针。结构体变量说明结构体变量的说明在程序的变量说明部分给出,一般在结构定义之后,它的语法格式如下:Struct结构类型名结构变量名表;例如:Structstudentstu;指出了结构变量stu是student类型的变量,它由四个成员组成,每个成员的数据类型和名字都与student结构定义中给出的相同。系统完全按照结构定义时制定的内存模式为结构变量分配内存空间。可以在定义结构体类型的同时给出结构体变量。Structstudent{Longnum;Chaname[20];Chasex;Floatscore;}s

3、tu1,stu2;这种形式与前面给出的结构定义和结构说明分开处理效果相同。结构体成员访问结构体成员是通过结构体变量名和成员名进行访问的,不能把他作为一个整体进行访问。其访问格式如下:结构体变量名.成员名其中运算符.是成员访问运算符,其运算级别是最高的,和圆括号运算符()、下标运算符[]是同一级别的。如果结构体成员是指针变量,则访问格式为:*stu1.name如果某个结构体变量的成员数据类型又是一个结构体,则访问方式为:外层结构体变量名.外层成员名.内层成员名可以在定义结构体变量的同时对结构体变量初始化。{结构体成员}结构体变量={初始数据};stru

4、ctstudent{longnum;charname[20];charsex;floatscore;}stu1={200401L,"ZhangHong",'f',92.5f};对于嵌套的结构体类型数据,访问格式为:结构体变量名1.结构体变量名2.成员名结构体变量初始化的格式如下:struct结构体名{结构体成员}结构体变量={初始数据};初始数据类型必须与结构成员的数据类型相匹配,并且先后顺序一一对应赋值。要对结构体变量的成员地址进行访问,其语法格式为:&结构体变量.成员名当一个指针变量用来指向一个结构变量时,称为结构体指针变量。结构体指针变量中的值

5、是所指向的结构体变量的首地址。结构体指针变量:Struct结构名*结构体指针变量名Structstudent*pstu;必须先赋值后使用,把结构体变量的首地址赋给指针变量,不能把结构名或结构体变量名赋给指针变量。pstu=&stu1;结构体名和结构体变量是两个不同的概念,结构体名只能表示一个结构形式,编译系统并不对它分配内存空间,只有当某变量被说明为这种类型的结构时,才对该变量分配存储空间。这是因为结构体变量被定义后相当于标准数据类型被使用。利用结构体指针变量访问成员如下:(*结构体指针变量).成员名或者:结构体指针变量->成员名后一种形式较为方便,

6、容易区分。三种访问结构体成员的方式:结构变量。成员名(*结构指针变量)。成员名结构指针变量->成员名结构体与数组相同结构的结构体变量组成的数组,简称结构数组。Structstudent{Longnum;Charname[20];Charsex;Structbirthdaybir;Floatscore;}students[35];上面定义了一个结构数组students,共35个元素,students[0]~students[34]。每个数组元素都具有structstudent的结构形式,用来描述一个学生的相关信息。结构数组名students表示该数组存

7、储的首地址。结构数组在说明的同时也可以对它进行初始化赋值。语法格式如下:Struct结构体名结构数组名[数组长度]={初始数据};与其他数组一样,结构体数组的元素也可以用指针来引用。但指针应说明为数组元素类型的指针,并将数组名或者数组的第0个元素的地址赋给指针变量。引用上述结构体数组students元素的指针变量说明如下:Structstudent*p=students;或者Structstudent*p=&students[0];则p为指向结构数组的指针变量,且p指向该结构数组的0号元素,p+1指向1号元素,p+i指向第i号元素。(*p).num或

8、p->num表示引用students[0].num(*++p).num或(++p)->num表示引用stud

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。