Fortran Coder

标题: Fortran子程序参数传递的问题 [打印本页]

作者: 18229702011    时间: 2020-7-14 01:00
标题: Fortran子程序参数传递的问题
各位老师好,
书上说子程序是传址调用,如图用两种方式写一个意思,为什么不一样?是不是b-a是一个数学算式,就没有经过子程序?、

     

作者: 楚香饭    时间: 2020-7-14 08:21
并不是一个意思。
b-a 是一个表达式,表达式有值,但不是变量,没有地址(也就不可传址),也不可引用。
而 d 是一个变量,有地址,可以传址,可以引用。

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




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2