有没有一种方法可以为不同变量分配相同的值,而无需在单个语句中构建数组?单个语句中多个变量的相同值赋值
举例来说,如果我有变量A,B,C,D和ē,可我给你像
a=b=c=d=e=10.0
?
我知道我可以在一个单一的线做:
a=10.0; b=10.0; c=10.0; d=10.0; e=10.0
但是,这不是我想要的,因为如果我要10.0以后的值更改为别的, 我必须作出改变无处不在。
任何帮助?
有没有一种方法可以为不同变量分配相同的值,而无需在单个语句中构建数组?单个语句中多个变量的相同值赋值
举例来说,如果我有变量A,B,C,D和ē,可我给你像
a=b=c=d=e=10.0
?
我知道我可以在一个单一的线做:
a=10.0; b=10.0; c=10.0; d=10.0; e=10.0
但是,这不是我想要的,因为如果我要10.0以后的值更改为别的, 我必须作出改变无处不在。
任何帮助?
来吧Fortranners,你知道你要...
equivalence(a,b,c,d,e)
现在所有那些流氓将不得不在任何时候都相同的值。
第一个版本在Fortran中是不可能的。继(2008)标准,分配的一般形式的(CH 7.2.1.1)
variable = expr
但是你为什么不试着这么做:
a=10.0; b=a; c=a; d=a; e=a
这样一来,你只之后需要更改a
的值!
也许:
real, parameter :: NamedConst = 10.0
a=NamedConst; b=NamedConst; c=NamedConst; d=NamedConst; e=NamedConst
然后,如果你要在一个以上的线路上使用特殊值NamedConst
,显然改变其值一个地方。
你或许应该考虑使用数组,而不是单个变量,尤其是如果它们提供类似用途:
real :: myarray(5)
myarray(:) = 10.0
我假设他们只被初始化为相同的值。 –
这是迄今为止我得到的最明智的答案。然而,正如你所说,这只适用于初始化,因为它是*声明*,而不是*声明*。 :( – hbaromega