- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本章内容 11.1 派生类型定义 派生数据类型定义的一般格式为: TYPE [::] 派生类名 成员列表 END TYPE [派生类名] 说明: (1)以TYPE开头,最后以END TYPE结束,TYPE和派生类名之间的“::”可以省略。 (2)派生类名为一个标识符,用户可以用任意合法标识符命名。 (3)成员列表可以是各种类型的数据,并且可以有多项,每个成员都要说明其类型和名称。 (4)派生类型定义中不允许包含其它派生类型定义。多个派生类型定义只能并列,不能嵌套。 (5)派生类型定义可以出现在可执行语句前的数据说明部分任何位置。例如: TYPE student1 CHARACTER*11 num !学号 CHARACTER*8 name !姓名 CHARACTER*2 sex !性别 INTEGER math,eng,phy, for !四门课成绩 REAL aver !平均分 INTEGER order !名次 END TYPE student1 11.2 结构体变量的定义与引用 1.结构体变量定义 TYPE(派生类型名) ::结构体变量名[,结构体变量名,…] 例如: TYPE(student1) :: s1,s2 结构体可以嵌套定义,即结构体中成员也是一个结构体变量。例如: 关于结构体,还需要注意以下几点: (1)派生类型与结构体变量的区别。对结构体变量来说,在定义时首先需要定义一个派生类型,然后再定义变量为该类型。类型和变量是不同的概念,不要混淆。我们只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。 (2)成员名可以与程序中的变量名相同,二者不代表同一对象。但为了避免混淆,建议初学者尽量选取不同的名字。 2. 结构体成员的引用 结构体名%成员名 结构体名. 成员名 例如: stu1.num 表示结构体变量stu1的学号,字符型 stu1.name 表示结构体变量stu1的姓名,字符型 stu1.birthday.year 表示结构体变量stu1的出生年份,整型 stu2%sex 表示结构体变量stu2的性别,逻辑型 stu2%addr 表示结构体变量stu2的住址,字符型 stu2%birthday%month 表示结构体变量stu2的出生月份,整型 说明: (1)两种引用方式可以交叉使用。 例如:stu2.birthday%day 但为了程序清晰,在一个程序中最好使用一种引用符。 (2)在含嵌套定义的结构体中,成员引用也应当嵌套使用“%”或“.”。 例如:stu1.birthday.year 11.3 结构体的初始化 结构体初始化主要有以下三种方式: 1.定义结构体变量的同时初始化 TYPE(派生类型名)::结构体变量名=派生类型名(成员初值表) 例如: TYPE(student1)::s1=student1(“20083011001”,”李惠”,” 女”,89,75,90,88,85.5,6),s2,s3 TYPE(student2)::stu1=student2(2008001,”王勇”,.T.,date(1990,10,25),”南京市中央路298号”),stu2 说明: (1)初始值必须是常量,且类型和个数应与结构体变量定义中各成员的类型与个数保持一致; (2)可以将一个结构体变量的值直接赋值给另外一个结构体变量。例如下面的语句: s2=s1 使s1和s2两个结构体变量得到相同的值。 (3)上面的语句可以改为: TYPE(student1)::s1 s1=student1(“20083011001”,”李惠”,” 女”,89,75,90,88,85.5,6) 2.使用赋值语句进行初始化 TYPE(student1)::s1 TYPE(student2)::stu1 s1.num=”20083011001” s1.name=”李惠” s1.math=89 stu1%birthday%year=1990 stu1%birthday%month=10 stu1.birthday.day=25
文档评论(0)