[理学]第十章指针大学FORTRAN程序课件.ppt

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

第十章 指针 指针是现代程序设计语言中一个非常重要的概念,它使语言的功能大大加强。FORTRAN90以前的FORTRAN版本,没有指针这种数据类型,FORTRAN90对其作了重大改进,引入了指针的概念。但是值得注意的是,FORTRAN90的指针与C语言中的指针并不相同,因为它并不代表一个变量的地址,而是代表一个变量的别名,实质上它相当于C++里的引用,本章介绍指针的概念与应用。 10.1 指针的定义与使用 在前面内容中,变量的使用,都是按变量的名字即标识符直接进行的,并且每个变量的名字都是唯一的,是否可以给同一个变量一个不同的名字?FORTRAN90中的指针,正是用来给变量起别名,并且通过后面的章节的学习,我们知道指针能给编程带来诸多的方便。 10.1.1 指针变量的定义格式 指针变量的定义格式为: 类型说明,POINTER::指针变量名1,指针变量名2,… 其中: (1)类型说明可以是任何数据类型,如INTEGER、REAL等,它表示该指针所指的目标变量类型。 (2)POINTER为指针定义的关键字,::为作用域符。 (3)指针变量名为标识符,只要符合标示符的命名规则即可。例如 INTEGER,POINTER::A1,A2此语句定义了两个指针变量A1和A2,它们都指向整型变量。 可以将类型说明与指针说明分开,即先说明变量的类型,然后指定变量为指针。例如 INTEGER A1,A2 POINTER A1,A2 此语句同样定义了整型两个指针变量A1和A2。 10.1.2、指针变量的使用 下面通过一个具体的实例来说明指针变量的使用: 例10.1指针变量示例1 PROGRAM POINTER1 INTEGER,POINTER::P INTEGER,TARGET:: X READ*,X P=X PRINT*,X=,X PRINT*,P=,P END 输入3,程序的输出结果为: X=3 P=3 此例中,先定义了一个指针变量P,然后定义了一个整型变量X,再通过P=X语句,使P指向X,这时两者实际上是同一个变量,就象一个人除了自己的名字外,还有外号一样。因此,无论输入的是什么整数,两者显示的结果一样。 X和P的关系如图10.1所示 X 5 P ? 图10.1 下面再看一个例子 例10.2 PROGRAM POINTER3 ? INTEGER, POINTER::P1,P2,P3,P4 INTEGER,TARGET:: X1,X2 INTEGER X,S1,S2,S3,S4,S5 READ*,X1,X2 X=X1*X2 P1=X1 P2=X2 P3=X1 P4=P1 S1=P1*P2 S2=P3*P2 S3=P1*X2 S4=P3*X2 S5=P4*X2 PRINT*,X=,X PRINT*,S1=,S1 PRINT*,S2=,S2 PRINT*,S3=,S3 PRINT*,S4=,S4 PRINT*,S5=,S5 END 输入:3 4后,输出结果为: X=12 S1=12 S2=12 S3=12 S4=12 S5=12 在该例中,定义了四个指针变量:P1,P2,P3,P4,通过P1=X1,使P1指向X1,P2=X2使P2指向X2,再通过P3=X1和P4=P1,使P3和P4都指向X1,因此,X、S1、S2、S3、S4、S5计算结果一样,实际上都是X1+X2。 下面用图表示X1、X2、P1、P2、P3、P4的关系如图10.2、10.3所示: X1 (1) 指针变量赋值格式为: 指针变量=目标变量或者另一指针变量。 (2) 多个指针变量可以指向同一目标变量,但是,一个指针变量只能指向一个目标变量,不能同时指向多个目标变量。 (3) 指针变量与目标变量的类型应当严格一致,不存在所谓的兼容情况,即,整型指针变量所指的只能是整型变量,而不能是实型变量等。 (4) 指针变量的本质是所指变量的别名,两者在编译时会当作同一变量,指针变量的引用实际上是对目标变量的引用。 (5) 在程序中,指针变量通常有以下三种状态: ① 未定义状态,在程序开始时,所有的指针都处于这种状态。 ② 空状态,此时指针还没有作为任何对象的别名。 在程序中,有时为了方便起见,可以让指针指向一个空对象。其语句为: NULLIFY(指针变量名)。 ③ 关联状态,此时,指针已经作为其他对象的别名。 值得注意的是只有在第三种状态时,指针才能参与运算,否则,或者编译出错,或者非法操作。 10.2 动态变量 前面已介绍过,变量的本质是一个内存单元,该单元一般是在变量定义时,就已经分配的,以后在程序运行期间不再改变,但是通过指针,可以先得到变量名,然后再利用ALLOCATE(P)函数可以动

文档评论(0)

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

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

1亿VIP精品文档

相关文档