Fortran中"数据(data)"和"="的区别是什么?

3

我是Fortran的新手,想要了解这两个语句之间的区别:

logical :: TF
TF = .true.

并且:

logical :: TF
data TF/.true./

请用更简单的词语回答,我最近从Python转到这种编译语言。
1个回答

3

DATA语句通俗地说是对变量进行明确的初始化,而赋值语句则是给变量赋一个值。

这两者是非常不同的。你可以将此问题的DATA语句版本视为:

logical, save:: TF=.TRUE.

我看到很多关于这个行为表现出乎意料的问题/投诉。

总的来说,值得注意的是,DATA语句和“带SAVE声明”(实际上是声明时的初始化)也存在(微妙的)不同。作为初学者,也许可以假装这些初始化不存在,坚持使用赋值。


我明白了,所以数据语句与使用声明(“=”)和“save”语句具有相同的效果? - patrick7
1
效果并不完全相同。对于这个问题来说,是的,但在许多其他情况下,则不是。 - francescalus
1
一个DATA语句在程序启动时提供了一个变量的一次性初始化。它与赋值不同,因为赋值每次执行时都会发生。在较新的Fortran标准中,可以在变量声明上添加初始化,而不是使用DATA。这两种形式都意味着SAVE属性,使变量在过程调用之间保持其值。 - Steve Lionel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接