gpt4 book ai didi

fortran - 品格申报表

转载 作者:行者123 更新时间:2023-12-02 02:20:14 27 4
gpt4 key购买 nike

以下字符声明的含义是什么

character :: c*4

它对于字符来说是特殊的还是适用于所有数据类型?

4 与中的长度参数相同吗

character(len=4) :: c

最佳答案

有多种方法可以在类型声明语句中声明字符实体的长度,但对这些方法的解释分散在其他几个问题和答案中,因此让我们在这里收集它们。问题的形式具有相同的效果。

字符声明语句可以使用 len= 形式指定类型说明符中的长度:

character(len=4) :: ...    ! Literal constant length
character(len=n) :: ... ! Named constant/variable length
character(len=*) :: ... ! Assumed/implied length
character(len=:) :: ... ! Deferred length

或使用*形式:

character*4   :: ...    ! Literal constant length
character*(4) :: ... ! Another literal constant length
character*(n) :: ... ! Named constant/variable length
character*(*) :: ... ! Assumed/implied length
character*(:) :: ... ! Deferred length

对于文字常量的情况,括号是可选的且不是必需的,但对于其他情况是必需的。

或者,可以在实体声明本身中使用 * 形式:

character :: a*4, b*(n), c*(*), d*(:)
character(len=2) :: x*4 ! The *4 overrides the len=2

在所有情况下,如果未指定值,1 是默认长度。

如果你想以这种方式指定长度和数组形状:

character :: a(5,5)*4
character(len=2), dimension(2) :: b(5,5)*4 ! Shape and length overridden.

使用*的规范形式对于字符长度是唯一的(对于函数和变量)。即使是带有长度类型参数的非字符对象也不能使用此语法。然而,正如 Vladimir F 所指出的,存在类似的非标准形式,例如 integer*4

最后,name*(len) 形式特定于类型声明语句。例如,它不能用于分配:

character(:), allocatable :: c

allocate(character :: c*4) ! Not allowed as length specification, use instead
allocate(character(len=4) :: c) ! or
allocate(character*4 :: c) ! etc

关于fortran - 品格申报表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66531967/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com