24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1426  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

junmajifei

铜虫 (正式写手)

[求助] Fortran数组的调用问题已有6人参与

在网上看到一段代码,
integer bi(50000)
bi(20000) = 20000
...

if (bi(A).eq.A) goto 165

这里A的取值有两种情况,或者是0,或者是20000

请问bi(0)的值为多少?  

既然定义了integer bi(50000),bi应该是默认从1开始的,我不明白bi(0)存不存在,如果存在,默认值时多少?

电脑上没装fortran,还请广大虫友指教。
回复此楼

» 收录本帖的淘帖专辑推荐

计算机语言

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

相信自己,活出自己的精彩!
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

pippi6

铁杆木虫 (著名写手)

工程和科学数值计算咨询

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
junmajifei: 金币+25, ★★★★★最佳答案, 回答的很详细。 2015-01-11 09:51:53
bi(0) 是没有定义的。但是,一般的编译器,比如CFV6.6,如果你没有使用 /check:bounds 的option的话, 允许你用。但是,值就不一定了。很可能取决于内存中排在数组  bi 之前的变量是什么。也就是说,有随机性。所以,是一个没有意义的问题。但,默认值很大可能性是0. 这是因为大多数变量很可能尚未赋值过。

如果使用了 option /check:bounds 和 /traceback, 就会出 run time error,告诉你停在那里。
6楼2015-01-11 01:01:26
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

sunchuanxi

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
默认从1,没有下标为0的值

[ 发自小木虫客户端 ]
2楼2015-01-10 15:01:21
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

junmajifei

铜虫 (正式写手)

引用回帖:
2楼: Originally posted by sunchuanxi at 2015-01-10 15:01:21
默认从1,没有下标为0的值

if (bi(A).eq.A) goto 165  这个语句运行的时候会报错吗?如果 A = 0的话
相信自己,活出自己的精彩!
3楼2015-01-10 15:18:12
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

我是小刚

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
junmajifei: 金币+15, ★★★很有帮助, 谢谢您的回答。 2015-01-11 09:52:52
引用回帖:
3楼: Originally posted by junmajifei at 2015-01-10 15:18:12
if (bi(A).eq.A) goto 165  这个语句运行的时候会报错吗?如果 A = 0的话...

这个不会出错,虽然数组的角标默认的是从1开始,但是不影响它的值为零。如果没有初始化,数组里的元素可能是随机数

[ 发自手机版 http://muchong.com/3g ]
4楼2015-01-10 15:26:22
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见