24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1418  |  回复: 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的回帖

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的回帖

我是小刚

新虫 (初入文坛)

【答案】应助回帖

引用回帖:
3楼: Originally posted by junmajifei at 2015-01-10 15:18:12
if (bi(A).eq.A) goto 165  这个语句运行的时候会报错吗?如果 A = 0的话...

补充一下,前提是if后的goto位置没啥问题

[ 发自手机版 http://muchong.com/3g ]
5楼2015-01-10 15:28:06
已阅   关注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的回帖

997106260

新虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
我想知道如何进行c语言函数调用

[ 发自小木虫客户端 ]
7楼2015-01-11 07:39:14
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

haozl07

禁虫 (小有名气)

★ ★ ★ ★ ★
感谢参与,应助指数 +1
junmajifei: 金币+5, 有帮助, 谢谢您的回答。 2015-01-11 09:52:17
本帖内容被屏蔽

8楼2015-01-11 09:36:30
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

junmajifei

铜虫 (正式写手)

引用回帖:
6楼: Originally posted by pippi6 at 2015-01-11 01:01:26
bi(0) 是没有定义的。但是,一般的编译器,比如CFV6.6,如果你没有使用 /check:bounds 的option的话, 允许你用。但是,值就不一定了。很可能取决于内存中排在数组  bi 之前的变量是什么。也就是说,有随机性。所以 ...

谢谢您的回答,integer bi(50000) ,按照这样定义的话,其实默认bi是从bi(0)开始的,是我刚开始没看懂代码,代码的运行中确实也没有出现过bi(0)这个值。
相信自己,活出自己的精彩!
9楼2015-01-11 09:57:32
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

junmajifei

铜虫 (正式写手)

引用回帖:
9楼: Originally posted by junmajifei at 2015-01-11 09:57:32
谢谢您的回答,integer bi(50000) ,按照这样定义的话,其实默认bi是从bi(0)开始的,是我刚开始没看懂代码,代码的运行中确实也没有出现过bi(0)这个值。...

修正一下,integer bi(50000) ,按照这样定义的话,其实默认bi是从bi(1)开始的.
相信自己,活出自己的精彩!
10楼2015-01-11 10:00:05
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 junmajifei 的主题更新
信息提示
请填处理意见