《Fortran指针》PPT课件

《Fortran指针》PPT课件

ID:36437444

大小:322.60 KB

页数:15页

时间:2019-05-09

《Fortran指针》PPT课件_第1页
《Fortran指针》PPT课件_第2页
《Fortran指针》PPT课件_第3页
《Fortran指针》PPT课件_第4页
《Fortran指针》PPT课件_第5页
资源描述:

《《Fortran指针》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十章指针10.1指针的定义与使用实质:给一个变量起一个别名一、指针变量的定义格式类型说明,它表示该指针所指的目标变量类型。POINTER为指针定义的关键字。类型说明,POINTER::指针变量名1,指针变量名2,…例如:INTEGER,POINTER::A1,A2可以将类型说明与指针说明分开,例如:INTEGERA1,A2POINTERA1,A2指针变量与目标变量的类型应当严格一致二、指针变量的使用P192例10.1指针变量示例1PROGRAMPOINTER1INTEGER,POINTER::P!定义指针变量PINTEGER,TARGET::

2、X!定义整型变量XREAD*,XP=>X!使P指向X,这时两者实际上是同一个变量PRINT*,"X=",XPRINT*,"P=",PEND输入3输出结果为:X=3P=3格式:指针变量=>目标变量或者另一指针变量。P193例10.2指针变量示例2INTEGER,POINTER::P1,P2,P3,P4INTEGER,TARGET::X1,X2INTEGERX,S1,S2,S3,S4,S5READ*,X1,X2X=X1*X2P1=>X1P2=>X2P3=>X1!多个指针变量可以指向同一目标变量P4=>P1!P4指向X1S1=P1*P2S2=P3*P

3、2S3=P1*X2S4=P3*X2S5=P4*X2PRINT*,"X=",XPRINT*,"S1=",S1PRINT*,"S2=",S2PRINT*,"S3=",S3PRINT*,"S4=",S4PRINT*,"S5=",S5END输入:34输出:X=12S1=12S2=12S3=12S4=12S5=1210.2动态变量方法:先定义指针,再利用ALLOCATE(P)函数为其动态分配空间,其中P为指针变量。释放存储单元函数:DEALLOCATE动态分配存储单元函数:ALLOCATEP195例10.4ALLOCATE和DEALLOCATE函数的用法

4、:PROGRAMPOINTER4INTEGER,POINTER::P1,P2!定义指针变量P1、P2INTEGERSALLOCATE(P1,P2)!用ALLOCATE函数为P1,P2分配空间READ*,P1,P2S=P1+P2DEALLOCATE(P1,P2)!用DEALLOCATE函数释放空间PRINT*,"S=",SEND输入56输出S=1110.3指针与数组利用指针来指向一个数组,能动态地分配数组空间,给编程带来极大的方便。通过动态定义,可以根据当时使用空间的大小来生成空间,使数组大小满足要求。一、指针数组的定义格式:类型说明,DIMEN

5、SION(:…:),POINTER::指针名DIMENSION(:…:):数组的动态说明标识,不指定数组下标界限“:”个数=数组维数POINTER:指针说明标识。例:REAL,DIMENSION(:),POINTER::X!声明指向一维实型数组的指针XALLOCATE(X(20))!为X数组分配20个单元的存储空间P197例10.5输入任意两个数,将它们及四则运算结果存储起来后输出。分析:可以利用指针,定义一个动态数组X,用来存放输入的数据和计算的结果,该数组的空间大小可以根据要存储的数据个数动态分配。REAL,DIMENSION(:),POI

6、NTER::XREAD*,A,BC=A+B;D=A-B;E=A*BIF(B.NE.0)THENF=A/BELSEF=0ENDIFALLOCATE(X(6))X(1)=A;X(2)=B;X(3)=CX(4)=D;X(5)=E;X(6)=FWRITE(*,100)X100FORMAT(1X,3F8.2)DEALLOCATE(X)END输入36,输出:3.006.009.00-3.0018.000.5010.4指针与链表在链式存储中,每一个结点除了存储自己的信息以外,还保留下一个值,用来访问下一个变量,这个值称为指针,下面介绍如何使用链表。一、结点的

7、定义最简单的结点是普通数组的元素,如有以下定义:INTEGERA(10)则A(1)、A(2)、A(3)、A(4)…等,可以看作结点。复杂的结点包含多种类型的数据,一般定义为一个结构体。下面是一个链表结点结构体的定义:TYPENODEINTEGERVALUE!数据本身TYPE(NODE),POINTER::NEXT!指向下一个结点的指针NEXTENDTYPENODEVALUENEXTP198例:TYPESTUDENTNODECHARACTER(15)NAMEINTEGERNUMLOGICALSEXCHARACTER(30)ADDRESSTYPE(

8、STUDENTNODE),POINTER::NEXTENDTYPE二、链表的基本操作链表的基本操作:建表、插入、删除、查找、更新、遍历等。P198例1

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

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

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