You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fortran中‘data’语句与赋值运算符‘=’的区别是什么?

两段Fortran逻辑变量代码的区别

第一段:运行时赋值

logical :: TF
TF = .true.
  • 这是程序运行到这一行时才会执行的赋值操作,和你在Python里写tf = True的逻辑完全一样
  • 要是把这段代码放进循环或者条件分支里,每次程序走到这里,都会重新给TF设为.true.
  • 可以放在程序的任何执行代码块里(比如子程序、循环体、if语句块内)

第二段:编译期初始化

logical :: TF
data TF/.true./
  • 这是在程序编译阶段就完成的初始化,程序一启动,TF就已经是.true.了,运行时不会再执行这一步
  • 它只能放在变量声明的区域(和logical :: TF这类定义语句放在一起),不能塞进循环、if分支这类执行代码里
  • 要是TF是子程序里的局部变量,用data初始化的话,有些编译器会让它保持这个初始值(类似Python里的默认参数),但赋值语句每次进入子程序都会重新赋值

内容的提问来源于stack exchange,提问作者patrick7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:54:16