FORTRAN90程序设计教程 第10章 指针

FORTRAN90程序设计教程 第10章 指针

ID:45848449

大小:249.00 KB

页数:53页

时间:2019-11-18

FORTRAN90程序设计教程 第10章 指针_第1页
FORTRAN90程序设计教程 第10章 指针_第2页
FORTRAN90程序设计教程 第10章 指针_第3页
FORTRAN90程序设计教程 第10章 指针_第4页
FORTRAN90程序设计教程 第10章 指针_第5页
资源描述:

《FORTRAN90程序设计教程 第10章 指针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第十章指针指针是现代程序设计语言中一个非常重要的概念,它使语言的功能大大加强。FORTRAN90以前的FORTRAN版本,没有指针这种数据类型,FORTRAN90对其作了重大改进,引入了指针的概念。但是值得注意的是,FORTRAN90的指针与C语言中的指针并不相同,因为它并不代表一个变量的地址,而是代表一个变量的别名,实质上它相当于C++里的引用,本章介绍指针的概念与应用。10.1指针的定义与使用在前面内容中,变量的使用,都是按变量的名字即标识符直接进行的,并且每个变量的名字都是唯一的,是否可以给同一个变量一个不同的名字?FORTRAN90中的指针,

2、正是用来给变量起别名,并且通过后面的章节的学习,我们知道指针能给编程带来诸多的方便。10.1.1指针变量的定义格式指针变量的定义格式为:类型说明,POINTER::指针变量名1,指针变量名2,…其中:(1)类型说明可以是任何数据类型,如INTEGER、REAL等,它表示该指针所指的目标变量类型。(2)POINTER为指针定义的关键字,::为作用域符。(3)指针变量名为标识符,只要符合标示符的命名规则即可。例如INTEGER,POINTER::A1,A2此语句定义了两个指针变量A1和A2,它们都指向整型变量。可以将类型说明与指针说明分开,即先说明变量的

3、类型,然后指定变量为指针。例如INTEGERA1,A2POINTERA1,A2此语句同样定义了整型两个指针变量A1和A2。10.1.2、指针变量的使用下面通过一个具体的实例来说明指针变量的使用:例10.1指针变量示例1PROGRAMPOINTER1INTEGER,POINTER::PINTEGER,TARGET::XREAD*,XP=>XPRINT*,"X=",XPRINT*,"P=",PEND输入3,程序的输出结果为:X=3P=3此例中,先定义了一个指针变量P,然后定义了一个整型变量X,再通过P=>X语句,使P指向X,这时两者实际上是同一个变量,就

4、象一个人除了自己的名字外,还有外号一样。因此,无论输入的是什么整数,两者显示的结果一样。X和P的关系如图10.1所示X5P图10.1下面再看一个例子例10.2PROGRAMPOINTER3INTEGER,POINTER::P1,P2,P3,P4INTEGER,TARGET::X1,X2INTEGERX,S1,S2,S3,S4,S5READ*,X1,X2X=X1*X2P1=>X1P2=>X2P3=>X1P4=>P1S1=P1*P2S2=P3*P2S3=P1*X2S4=P3*X2S5=P4*X2PRINT*,"X=",XPRINT*,"S1=",S1PR

5、INT*,"S2=",S2PRINT*,"S3=",S3PRINT*,"S4=",S4PRINT*,"S5=",S5END输入:34后,输出结果为:X=12S1=12S2=12S3=12S4=12S5=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)指针变量赋值

6、格式为:指针变量=>目标变量或者另一指针变量。(2)多个指针变量可以指向同一目标变量,但是,一个指针变量只能指向一个目标变量,不能同时指向多个目标变量。(3)指针变量与目标变量的类型应当严格一致,不存在所谓的兼容情况,即,整型指针变量所指的只能是整型变量,而不能是实型变量等。(4)指针变量的本质是所指变量的别名,两者在编译时会当作同一变量,指针变量的引用实际上是对目标变量的引用。(5)在程序中,指针变量通常有以下三种状态:①未定义状态,在程序开始时,所有的指针都处于这种状态。②空状态,此时指针还没有作为任何对象的别名。在程序中,有时为了方便起见,可以

7、让指针指向一个空对象。其语句为:NULLIFY(指针变量名)。③关联状态,此时,指针已经作为其他对象的别名。值得注意的是只有在第三种状态时,指针才能参与运算,否则,或者编译出错,或者非法操作。10.2动态变量前面已介绍过,变量的本质是一个内存单元,该单元一般是在变量定义时,就已经分配的,以后在程序运行期间不再改变,但是通过指针,可以先得到变量名,然后再利用ALLOCATE(P)函数可以动态分配其空间,其中P为指针变量。下面通过一个具体实例,来了解其使用方法。例10.3PROGRAMPOINTER3INTEGER,POINTER::PALLOCATE(

8、P)P=4PRINT*,"P=",PEND输出结果为:P=4在该例中,先定义了一个指针变量P,然后利用ALL

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

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

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