fortran第11章.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
fortran第11章

11.2.5 ASSOCIATED固有函数 测试函数ASSOCIATED:值为.TRUE.、.FALSE. (1) ASSOCIATED(P)测试P是否关联 (2) ASSOCIATED(P,目标变量名X)测试P是否与X关联 (2) ASSOCIATED(P,P1)测试P,P1是否指向同一个目标 * Fortran 90 Visual Fortran 90 程序设计 11.4 链表 11.1 指针的概念 11.5 递归及其应用 11.2 指针的使用 11.3 指针数组 11.1 指针的概念 功能:定义了两个指针变量PT1,表示为:PT2,表示为: 二、目标变量的说明:比一般变量多了一个TARGET属性 例:REAL,TARGET::X,YXY 功能:通知编译系统为X,Y分配内存 指针变量的定义:指针变量是某个目标变量的别名、或另一个指针变量的别名、或某个内存的别名。 一、指针变量的说明:比一般变量多了一个POINTER属性 例:REAL,POINTER::PT1,PT2FORTRAN77写法: REAL PT1,PT2POINTER::PT1,PT2 2、指针变量指向另一个指针变量 例:PT1PT2XY PT1PT2 三、指向操作 1、指针变量指向目标变量:指针变量名目标变量名 例:PT1X; PT2Y“”读作“指向” 功能: PT1是X的别名, PT2是Y的别名。 别名即另一个名字,显然共享存储单元,同值。 3、指向操作的注意点 左右两边应同类型(整、实、复、字符型、逻辑型、派生型) 2 指向操作自动解除原指向关系 (3)允许多个指针同时指向同一个目标 (4)指针变量:在内存占用4字节(无论指向何种类型的目标) Implicit none Integer,target::a1 Integer,pointer::p Pa Write*,*p A2 Write*,*p P3 Write*,*a End 1注意:指针变量指向后,就可以当一般变量使用 2且使用指针与使用这个目标变量无差异。 3 阅读技巧:指向--画共享表 例11-3:指针应用的简单例子。PROGRAM EXAM3IMPLICIT NONEINTEGER,TARGET::R113INTEGER,TARGET::R215INTEGER,POINTER::P1,P2PRINT*,R1,R2P1R1;P2R2PRINT *,P1,P2P1P2PRINT *,P1,P2,R1,R2R22*R2P2P1PRINT *,P1,P2,R1,R2END PROGRAM EXAM3 1315 1315151515 例11-4 用指针的方法实现将任意两个整型数进行交换PROGRAM EXAM4IMPLICIT NONEINTEGER,POINTER::PA,PB,PCINTEGER,TARGET::A,B,C READ*,A,B PAA; PBB PRINT*,A,B CA; PCC; PAPB; PBPC PRINT*,A,B END PROGRAM EXAM4 (1)指针变量指向内存 例: INTEGER,POINTER::P ALLOCATE(P) 功能:P是某个内存的别名P 这块空间以指针变量名命名,该指针变量就是动态变量 11.2.3 动态变量 (2)释放内存 DEALLOCATEP 将P所指向的内存释放 P回归成未定义(未指向)状态。 应先释放P,再做其它指向,否则会造成内存永不释放又不可用。 悬空指针:P1,P2是同类型的指针变量:ALLOCATEP2P1P2DEALLOCATEP2P1是悬空指针 2. 无名内存:P1是指针,A是同类型的目标ALLOCATEP1P1A以P1命名的内存空间无法访问,为无名内存。 11.2.6 悬空指针和无法访问的内存 11.2.1 指针的状态:三种 1、未定义:没有作为任何对象的别名。表示为: 2、空状态:不作为任何对象的别名。表示为:可由 NULLIFYP来实现,也称为空指针 3、关联状态:已作为其它对象的别名由 操作 或 ALLOCATE(P)实现 指针特性:指针关联后才可使用 例11-7 Program EXAM7 Implicit None Type Student_type Integer::num Real::score Typestudent_type,pointer::next Endtype Student_type Typestudent_type,pointer::pt_s1,pt_s2 Allocatept_s1 Allocatept_s2 Read *,Pt_s1%num,pt_s1%score Read *,Pt_s2%n

文档评论(0)

kabudou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档