Fortran Coder

查看: 102|回复: 2

[子程序] Fortran子程序参数传递的问题

[复制链接]

18

帖子

4

主题

0

精华

入门

F 币
78 元
贡献
51 点
发表于 2020-7-14 01:00:10 | 显示全部楼层 |阅读模式
各位老师好,
书上说子程序是传址调用,如图用两种方式写一个意思,为什么不一样?是不是b-a是一个数学算式,就没有经过子程序?、

QQ截图20200714004855.png       QQ截图20200714005456.png
回复

使用道具 举报

622

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
383 元
贡献
132 点

新人勋章爱心勋章水王勋章元老勋章

发表于 2020-7-14 08:21:59 | 显示全部楼层
并不是一个意思。
b-a 是一个表达式,表达式有值,但不是变量,没有地址(也就不可传址),也不可引用。
而 d 是一个变量,有地址,可以传址,可以引用。

两种写法,虽然传递的值是一样的,但第一种写法,是传址,子程序中改变虚参x,对应的实参d发生改变。
而第二种写法,只能传递值2.0,子程序种改变虚参x,则某些编译器会直接报错,某些则可以临时改变,无法对应的改变实参(b-a)

18

帖子

4

主题

0

精华

入门

F 币
78 元
贡献
51 点
 楼主| 发表于 2020-7-14 11:32:17 | 显示全部楼层
非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2020-8-7 00:56

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表