这是一个初学者问题,但我没有找到全面的答案。
以下声明有何不同(如果有)?
CHARACTER(5) :: a
CHARACTER, DIMENSION (5) :: b
CHARACTER(LEN=5) :: c
CHARACTER :: d(5)
CHARACTER :: e*5
并且:所有这些声明都可以与其他类型一起使用,例如REAL
?
答案 0 :(得分:5)
无论类型如何,<type>,dimension(5) :: b
和<type> :: b(5)
都相同,并且表示长度为5
的数组。 <type>
可以是例如character
,integer
,real
,logical
等
character(5)
是character(len=5)
的简写,声明了一个长度为5
的字符串。如果省略长度,则假定它已打开。 character :: d(5)
是一个包含五个长度为1的字符串的数组。
character :: e*5
是指定字符串长度的旧版本。
len
是字符串固有的(并且对于例如浮点数没有任何意义)。但是,您可以指定自己的派生类型,使其长度为len
(&#34;参数化派生类型&#34;)。对于整数和浮点数(以及其他一些),您可以以类似的方式指定变量的kind
。
有关详情,请参阅Fortran 2008 Standard,Ch。 4.4.3.2 &#34;字符类型说明符&#34; 。
答案 1 :(得分:3)
其中三个声明一个包含5个字符的字符串的字符变量。其中两个声明了一个包含5个字符的数组,每个字符都能容纳一个字符。
声明5个元素数组的两个元素将以相同的方式声明5个实数的数组。声明长度为5的字符的三个在其他变量类型中没有模拟。然而,这三个子集的特定语法将被编译,但将用于选择不同的种的实数,而不是表示字符长度。