主题:[讨论]变量的生存周期
本人一直对变量的生存周期有似懂非懂的感觉,还请各位不吝赐教。
(1)比如module,common,函数(子程序或function),同一个子程序里面的独立的两个循环。变量的生存周期关系到参数传递:以什么方式传递确保可以传递过去,没有差错,并且不会出现变量“打架”和相互干扰的问题。
(2)module和common是相互矛盾的吧,就是一个变量只能用其中一个,否则会出错。那么是不是一个module里面的内部函数(contains那种)在外部要使用时use 这个module,为什么会出现有些变量(是数组)可以传递出来,有些不行,为什么呢?不行的那些是不是什么细节没有考虑到。有一次我打印出来两个变量,其中一个可以,另一个打印出来是默认的初始值(即为0),哦对了,这两组变量都是通过文件读入的,通过一个读入子程序来实现。
(3)既然有common和module,那么参数传递是不是可以废止不用了
(4)fortran的子程序或函数的形参、实参,和哑元、实元是一个概念吗?有什么技巧和注意的。
(5)fortran程序在编好前内存就已经配置好了吧。(1)中提到的几种情况,变量分别是什么时候占有内存,到什么时候释放内存的。
(6)变量打架一般 会出现哪些地方,以防止这种情况的出现。
请各位前辈参与讨论,指点迷津,扩展思维,明晰概念,理清思路,谢谢,谢谢了!
(1)比如module,common,函数(子程序或function),同一个子程序里面的独立的两个循环。变量的生存周期关系到参数传递:以什么方式传递确保可以传递过去,没有差错,并且不会出现变量“打架”和相互干扰的问题。
(2)module和common是相互矛盾的吧,就是一个变量只能用其中一个,否则会出错。那么是不是一个module里面的内部函数(contains那种)在外部要使用时use 这个module,为什么会出现有些变量(是数组)可以传递出来,有些不行,为什么呢?不行的那些是不是什么细节没有考虑到。有一次我打印出来两个变量,其中一个可以,另一个打印出来是默认的初始值(即为0),哦对了,这两组变量都是通过文件读入的,通过一个读入子程序来实现。
(3)既然有common和module,那么参数传递是不是可以废止不用了
(4)fortran的子程序或函数的形参、实参,和哑元、实元是一个概念吗?有什么技巧和注意的。
(5)fortran程序在编好前内存就已经配置好了吧。(1)中提到的几种情况,变量分别是什么时候占有内存,到什么时候释放内存的。
(6)变量打架一般 会出现哪些地方,以防止这种情况的出现。
请各位前辈参与讨论,指点迷津,扩展思维,明晰概念,理清思路,谢谢,谢谢了!