24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1531  |  回复: 3

piaoshi

银虫 (小有名气)

[交流] 【求助】子程序的参数传递是传址还是传数

关于subroutine/function的参数传递问题
以下两篇给出了不同的答案,倒底哪个对呀
1. http://www.systhinker.com/html/31/n-2031.html
2.  http://www.sciencenet.cn/m/user_content.aspx?id=320817
1说“不论是 Fortran 的 subroutine 或 function 的参数,其传入的方式就只有一种,就是 call-by-reference,所以在上述所有的Fortran subroutine/function 的参数中,如果子函数改变了参数值,其父函数的相对应参数也会跟着改变。”
2说“使用函数(FUNCTION)时,传递给它的参数,只读取数据而不去改变这些的数据。而子例程(SUBSROTINE)就可以修改传进去的参数,这样给运算带来了极大的灵活性。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ykwang

金虫 (正式写手)

piaoshi(金币+3): 2010-11-06 14:38:48
第一种说法是正确的,第二种是胡说!
Nothing_Is_Impossible!
2楼2010-10-28 10:09:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

crazybioinfo

金虫 (正式写手)

是传数
3楼2010-10-28 19:59:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)


nono2009(金币+1):鼓励交流 2010-10-30 15:08:23
piaoshi(金币+2): 2010-11-06 14:39:04
引用回帖:
Originally posted by ykwang at 2010-10-28 10:09:53:
第一种说法是正确的,第二种是胡说!

其实用 Function 的话,目的就是不改变传进去的数值,如果改变了传进去的数值,那就是有 side effect 的 Function,一般不赞成这样做。虽然标准还是允许的……
4楼2010-10-28 20:10:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 piaoshi 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见