Fortran Coder

查看: 2449|回复: 3
打印 上一主题 下一主题

[求助] 语法问题

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
16 元
贡献
5 点
跳转到指定楼层
楼主
发表于 2022-9-10 23:16:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
fortran代码 <character*(*) str> 与<character*(*) str(1:*)>  有什么区别吗
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1962

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1353 元
贡献
572 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2022-9-11 12:27:15 | 只看该作者
character*(*) str  
虚参 str 是一个单变量的字符串,长度假定。现代代码,推荐这样写 character(len=*) :: str

character*(*) str(1:*)
虚参 str 是一个字符串数组,每个元素的长度假定。数组的长度未指定。这种是非常危险的,非常容易越界并且不报错。很危险,谨慎使用
现代代码,推荐这样写 character(len=*) :: str(:)

参考 http://passarray.w.fcode.cn/

3

帖子

1

主题

0

精华

新人

F 币
16 元
贡献
5 点
板凳
 楼主| 发表于 2022-9-12 22:40:29 | 只看该作者
fcode 发表于 2022-9-11 12:27
character*(*) str  
虚参 str 是一个单变量的字符串,长度假定。现代代码,推荐这样写 character(len=*) : ...

character*(*) str(1:*)

这个是一个字符串数组吗,相当于character str(10,10)这种字符串数组吗?


我理解的
后面的(1:*)是不是指定的是索引范围?

1962

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1353 元
贡献
572 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

地板
发表于 2022-9-13 08:29:54 | 只看该作者
character*(*) str(1:*)
类似于
character(len=*)  :: str(1:*)

len=* 是说str的类型是 character 字符串长度为 * (假定)

str(1:*) 是说它是一维数组,数组长度为 1:*,看上面的参考链接。数组的传递方式。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-26 04:04

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表