FORTRAN90程序设计10.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FORTRAN90程序设计10

FORTRAN90程序设计 扬州大学计算机中心 楚红 2007.1 第10章 指针与递归 10.1 指针的概念 10.2 指针的使用 10.3 指针数组 10.4 链表 10.5 递归及其应用 指针的概念 数据结构的概念 :数据的组织形式 数组的特点 同一数组中各元素的类型都是相同的 元素在内存中都占具同样大小的存储空间 数组元素按下标从小到大在内存中连续存放 具有元素寻址快、随机存取等特点 缺点: 在数组中插入和删除一个元素时需要移动大量数据,操作很不方便。 如果数组元素较多,实际数据项较少时,会浪费大量存储空间。 指针变量在处理数据插入、删除这类操作时非常方便,还可以利用指针变量形成比较复杂的数据结构,如链表、树等 指针变量的定义 指针变量简称为指针。说明指针变量时需要指出指针变量的类型,并说明它具有POINTER属性。指针的定义方式为: 类型,POINTER [ :: ] 变量名表 或将数据类型的说明和指针的说明分开定义为: 类型 [ :: ] 变量名表 POINTER 变量名表 其中,类型可以是任意数据类型的关键字,POINTER说明变量为指针属性的关键字。例如: REAL,POINTER :: P1,P2 目标变量及其定义 目标变量即是指针变量所指向的对象,习惯上简称为目标。 使用之前,必须进行定义,即用类型说明语句对变量进行说明,且该变量必须具有TARGET属性。其定义形式为: 类型,TARGET ::变量名表 例如: REAL,TARGET :: X,Y 该语句说明X和Y都是实型目标变量 INTEGER,TARGET ::I,J 该语句说明I和J都是整型目标变量 ? 由于指针变量类型必须与所指的目标变量类型相同,因而对应的可以定义实型指针P1、P2指向目标变量X、Y,定义整型指针PP1,PP2指向目标变量I,J。 指针赋值语句 指针变量指向目标变量,这种指向关系需要通过指针赋值语句来建立。指针赋值语句的一般形式为: 指针变量名 = 目标变量名 其中,指针变量和目标变量应具有相同的数据类型。指针赋值语句的赋值号是 = ,读作“指向”。 它只能用于给指针变量赋指针值,使指针变量与目标变量之间建立指向关系。 例如它可以是数组片断或数据结构。下述语句将V说明为一个一维数组的指针: REAL, DIMENSION ( : ), POINTER :: V 有了上面的说明,V可以指向任何一个一维实型数组,包括二维数组的一行或者一列。例如: V = REAL_ARRAY (4,:) 使V变成了数组REAL_ARRAY的第四行的别名。当然,此处的REAL_ARRAY必须具有TARGET属性,其说明语句为: REAL, DIMENSION (5,6), TARGET :: REAL_ARRAY 一旦具有指针属性的变量成为某个数据对象的别名(即指向某个数据对象),它就可以像其他变量一样使用,例如上面的例子中对V执行赋值语句: V = 1 就是将数组REAL_ARRAY的第四行全部设置为1。 指针变量的使用举例 [例10.1] 定义一个指针并指向目标,改变目标值后打印指针与目标变量的值。 PROGRAM EX1 IMPLICIT NONE INTEGER, TARGET :: R = 3 INTEGER, POINTER :: PR PR = R PRINT *,R,PR R = 2 * PR PRINT *, R, PR END [例10.2] 指针赋值的例子。 PROGRAM EX2 IMPLICIT NONE REAL, TARGET :: R = 13 REAL, POINTER :: P1, P2 P1 = R P2 = P1 PRINT *, P1, P2, R END [例10.3] 指针应用的例子。 PROGRAM EX3 IMPLICIT NONE REAL, TARGET :: R1 = 13 REAL, TARGET :: R2 = 15 REAL, POINTER :: P1, P2 PRINT *, R1, R2 P1 = R1; P2 = R2 PRINT *, P1, P2 P1 = P2 PRINT *, P1, P2, R1, R2 R2 = 2* R2 P2 = P1 PRINT *, P1, P2, R1, R2 END [例10.4] 用指针的方法实现将任意两个整型数进行交换。 PROGRAM EX4 IMPLICIT NONE INTEGER,POINTER::PA,PB,PC

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档